如何在c++中使用循环初始化集合



我需要知道可以使用循环初始化集合,以及如何初始化
我应该在此代码中做什么?

#include <iostream>
#include <set>
using namespace std;
int main()
{
set <char>s;
for (auto it = s.begin(); it != s.end();it++){
cin >>*it;
}
return 0;
}

我假设您希望循环所有用户输入。请注意,我展示的最简单的方法是忽略空白。

#include <iostream>
#include <set>
int main()
{
std::set<char> s;
char c; // input from user
while (std::cin >> c) { // read until end of input
s.insert(c);
}
// do something with s, I guess?
}

这:当用户完成输入时,std:cin >> c将失败,这将终止循环。我重复一遍:std::cin >>跳过空白。如果您还想读取用户输入的任何空白字符,我也可以展示一种方法。

迭代器只允许您访问已经在std::set(或其他容器(中的项,在std::set的情况下,一旦它们在那里,您就不能分配给它们。

还请注意,using namespace std;被广泛认为是不良做法。

最新更新