gpt4 book ai didi

c++如何打印每个整数在STL列表中出现的次数

转载 作者:行者123 更新时间:2023-11-30 00:44:35 24 4
gpt4 key购买 nike

using namespace std;

int main()
{
list<int> numbers; list<int> numb;

for (int i = 0; i<10; i++)
numbers.push_back(rand() % 20);

list<int>::iterator it;

for (it = numbers.begin(); it != numbers.end(); ++it)
{
cout << *it << " ";
}

return 0;
}

我想使用 std::count() 但我做不到。我尝试执行以下操作:

using namespace std;

int main()
{
list<int> numbers; list<int> numb;

for (int i = 0; i<10; i++)
numbers.push_back(rand() % 20);

list<int>::iterator it;

for (it = numbers.begin(); it != numbers.end(); ++it)
{
cout << *it << " ";

while (it != numbers.begin() && it != numbers.end())
{
++it;
*it = count(it, numbers.begin(), numbers.end());
cout << " " << *it;
}

cout << endl;
}

return 0;
}

但它给了我一个错误:

binary == no operator found which takes a left hand operator type 'int' (or there is not acceptable conversion).

我知道我做错了什么。

我还尝试了一些其他方法,例如 int numb = std::count(numbers.begin()), numbers.end(), *it),但没有用任何一个。所以,我想知道是否有一个特殊的运算符来计算列表中的值。

最佳答案

您需要再次查看 std::count 的签名。它采用三个参数 std::count(InputIterator first, InputIterator last, const T& val); 并返回数据集中 val 的出现次数。所以这样的事情应该适合你,其中 theNumber 是你正在计算的数字。

#include <algorithm>

int occurrences = std::count(numbers.begin(), numbers.end(), theNumber);

关于c++如何打印每个整数在STL列表中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48290710/

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