如何在C++中获取集合中的元素?

Sup*_*ing 12 c++ set stdset

我很困惑如何获取集合中的元素.我想我必须使用迭代器,但我该如何逐步完成呢?

Tho*_*ini 19

type例如,替换为int..并var使用集合的名称

for (set<type>::iterator i = var.begin(); i != var.end(); i++) {
   type element = *i;
}
Run Code Online (Sandbox Code Playgroud)

最好的方法是使用boost :: foreach.上面的代码将简单地变为:

BOOST_FOREACH(type element, var) {
   /* Here you can use var */
}
Run Code Online (Sandbox Code Playgroud)

你也可以这样#define foreach BOOST_FOREACH做,你可以这样做:

foreach(type element, var) {
   /* Here you can use var */
}
Run Code Online (Sandbox Code Playgroud)

例如:

foreach(int i, name_of_set) {
   cout << i;
}
Run Code Online (Sandbox Code Playgroud)


Geo*_*che 6

使用迭代器:

std::set<int> si;
/* ... */
for(std::set<int>::iterator it=si.begin(); it!=si.end(); ++it)
    std::cout << *it << std::endl;
Run Code Online (Sandbox Code Playgroud)

请注意,MSDN和cplusplus.com等许多参考文献都提供了示例 - 一个示例.;)


tvo*_*rez 5

对于 C++11 及更高版本:

std::set<int> my_set;
for (auto item : my_set)
    std::cout << item << endl;
Run Code Online (Sandbox Code Playgroud)