gpt4 book ai didi

c++ - 获取意外的大整数

转载 作者:行者123 更新时间:2023-11-28 03:10:12 25 4
gpt4 key购买 nike

我正在按照一个示例来计算一个单词在给定输入中出现的次数。这是我的代码:

string word, the_word;
int count(0);
vector<string> sentence;
auto it = sentence.begin();
cout << "Enter some words. Ctrl+z to end." << endl;
while (cin >> word)
sentence.push_back(word);

the_word = *sentence.begin();
cout << the_word << endl;
while(it != sentence.end()) {
if(*sentence.begin() == the_word)
++count;
++it;
}
cout << count << endl;

我给出的输入是“how now now now brown cow cow”。我希望 count 为 3,但我得到的是 200 万以内的整数。我错过了什么?

最佳答案

无效的迭代器

auto it = sentence.begin()

您在插入值之前分配。在输入循环后移动此行。

+-- auto it = sentence.begin();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| while (cin >> word)
| sentence.push_back(word);
|
+--> // Move it here.


if(*sentence.begin() == the_word)
^^^^^^^^^^^^^^^^
// Change to *it

您也可以使用 std::count相反:

cout << "Enter some words. Ctrl+z to end." << endl;

vector<string> v((istream_iterator<string>(cin)),istream_iterator<string>());

int c = v.size()? count(v.begin(), v.end(), v.front()) : 0;

关于c++ - 获取意外的大整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com