如果某些return
出现不止一次,我就无法strings
。
即我有两个vectors
,我使用1st
vector
搜索2nd
vector
,如果elements
中有一些2nd vector
1st vector
我想return
出现return
错误,1st vector
出现return s1
多次,但出于某种原因,如果break
中的元素不属于std::vector<std::string> test; //vector that comes in
test.push_back("YES");
test.push_back("YES");
//test.push_back("NO");
test.push_back("NO");
std::vector<std::string> test1; // vector from DB..
test1.push_back("YES");
test1.push_back("NO");
std::string s ("Element count is fine");
std::string s1 ("Element count is incorrect");
for(int i = 0; i < test1.size(); i++)
{
if(count(test.begin(), test.end(),test1[i]) > 1)
{
return s1;
}
}
return s;
我只能{{1}}出现不止一次
我的代码在
之下我想{{1}}当元素出现不止一次时,我怎么能这样做我尝试在{{1}}面前但是没有效果
{{1}}
答案 0 :(得分:2)
将循环更改为:
for(int i = 0; i < test1.size(); i++)
{
if(count(test.begin(), test.end(),test1[i]) > 1)
{
// DCS_LOG_DEBUG("Some elements have appeared more than once...");
return s1;
}
}
return
突破所有控制结构并离开当前函数。您的旧代码几乎每次都会返回s1
,因为return s1
没有为if
提供保护。
答案 1 :(得分:0)
我认为代码是对的。它在我的电脑上工作正常。也许你可以在if中输出一些内容,看看究竟发生了什么。
if(count(test.begin(), test.end(),test1[i]) > 1)
{
cout<<"The count is "<<count(test.begin(), test.end(),test1[i])<<endl;
return s1;
}