C++ 字符串与指针比较时出现问题

C++ 字符串与指针比较时出现问题,c++,list,iterator,C++,List,Iterator,我有三个列表,我想实现一个搜索功能 代码的工作原理是,我创建了一个迭代器,从每个列表的开头开始,它将用户输入的内容与列表中的每个值进行比较,当它找到匹配项时,它应该将一个整数变量增加1,因此最后它会说: 找到您的值: 我遇到的问题是,它编译得很好,但最终结果仍然为0,就像它没有增加变量一样 我想知道它是否在比较迭代器指向用户输入的值时遇到问题,有人能解释一下吗?用于在 在迭代器search\u ignore上,我手动将4个相同的值放入列表中,因此我知道最终结果应该显示4,但我仍然得到0: cou

我有三个列表,我想实现一个搜索功能

代码的工作原理是,我创建了一个迭代器,从每个列表的开头开始,它将用户输入的内容与列表中的每个值进行比较,当它找到匹配项时,它应该将一个整数变量增加1,因此最后它会说:

找到您的值:

我遇到的问题是,它编译得很好,但最终结果仍然为0,就像它没有增加变量一样

我想知道它是否在比较迭代器指向用户输入的值时遇到问题,有人能解释一下吗?用于在

在迭代器
search\u ignore
上,我手动将4个相同的值放入列表中,因此我知道最终结果应该显示4,但我仍然得到0:

cout << "\nSearch for: ";
string edit_search;
cin >> edit_search;

list<string>::iterator search_disregard = disregard_list.begin();
list<string>::iterator search_compare   = compare_list.begin();
int search_disregard_count = 0;
int search_compare_count   = 0;


for (int x = 0; x < disregard_list.size(); ++x)
{
    if (*search_disregard == edit_search)
    {
        ++search_disregard_count;
    }
}

for (int x = 0; x < compare_list.size(); ++x)
{
    if (*search_compare == edit_search)
    {
        ++search_compare_count;
    }
}

cout << edit_tag << edit_search << " is found in the following: \n" << endl;
cout << search_disregard_count << " time(s) in the Disregard List" << endl;
cout << search_compare_count << " time(s) in the Compare List" << endl;

buffer_clear();
cout>编辑搜索;
列表::迭代器搜索\忽略=忽略\列表。开始();
列表::迭代器搜索\u比较=比较\u列表。开始();
整数搜索\忽略\计数=0;
int search\u compare\u count=0;
对于(int x=0;xcout您永远不会增加迭代器,因此它们总是指向第一个元素。惯用的方式:

for(auto it = container.begin(); it != container.end(); ++it) ...

您从不增加迭代器,因此它们总是指向第一个元素。惯用的方式:

for(auto it = container.begin(); it != container.end(); ++it) ...

您从不增加迭代器,因此它们总是指向第一个元素。惯用的方式:

for(auto it = container.begin(); it != container.end(); ++it) ...

您从不增加迭代器,因此它们总是指向第一个元素。惯用的方式:

for(auto it = container.begin(); it != container.end(); ++it) ...

您需要将相同的字符串(每个列表中的第一个字符串)反复与每个循环中的测试值进行比较。也就是说,两个循环中的迭代器都不会前进。这是真的,哇。我觉得自己像个白痴,我今天写代码太久了。感谢您提供了这个非常简单的修复方法。您将重复比较相同的字符串(每个列表中的第一个字符串)和每个循环中的测试值。也就是说,两个循环中的迭代器都不会前进。这是真的,哇。我觉得自己像个白痴,我今天写代码太久了。感谢您提供了这个非常简单的修复方法。您将重复比较相同的字符串(每个列表中的第一个字符串)和每个循环中的测试值。也就是说,两个循环中的迭代器都不会前进。这是真的,哇。我觉得自己像个白痴,我今天写代码太久了。感谢您提供了这个非常简单的修复方法。您将重复比较相同的字符串(每个列表中的第一个字符串)和每个循环中的测试值。也就是说,两个循环中的迭代器都不会前进。这是真的,哇。我觉得自己像个白痴,我今天写代码太久了。谢谢你的简单修复。