【发布时间】:2019-03-07 19:16:29
【问题描述】:
我有一个字符串向量传递给我的函数,我需要将它与一些预定义的值进行比较。最快的方法是什么?
下面的代码 sn-p 显示了我需要做什么(这是我的做法,但最快的方法是什么):
bool compare(vector<string> input1,vector<string> input2)
{
if(input1.size() != input2.size()
{
return false;
}
for(int i=0;i<input1.siz();i++)
{
if(input1[i] != input2[i])
{
return false;
}
}
return true;
}
int compare(vector<string> inputData)
{
if (compare(inputData,{"Apple","Orange","three"}))
{
return 129;
}
if (compare(inputData,{"A","B","CCC"}))
{
return 189;
}
if (compare(inputData,{"s","O","quick"}))
{
return 126;
}
if (compare(inputData,{"Apple","O123","three","four","five","six"}))
{
return 876;
}
if (compare(inputData,{"Apple","iuyt","asde","qwe","asdr"}))
{
return 234;
}
return 0;
}
编辑1
我可以像这样比较两个向量吗:
if(inputData=={"Apple","Orange","three"})
{
return 129;
}
【问题讨论】:
-
std::vector已经有operator==。无需自己编写。 -
第一。通过 const 引用而不是通过复制传递参数
-
嗯,
return vector1 == vector2;? -
您可以将已知向量字符串映射到结果 int。
-
@FrançoisAndrieux 你能详细说明一下吗?