c++ unordered_set 遍历
时间: 2023-12-10 20:32:36 浏览: 455
c++中的unordered_set是一种哈希表的实现,它可以用来存储一组不重复的元素。遍历unordered_set可以使用迭代器或者C++11的新语法auto关键字。具体方法如下:
1.使用迭代器:
for(unordered_set<int>::iterator it=s.begin(); it!=s.end(); it++) {
cout<<*it<<" ";
}
2.使用C++11的新语法auto关键字:
for(auto it:s) {
cout<<it<<" ";
}
需要注意的是,unordered_set是无序的,因此遍历的顺序也是无序的。
相关问题
c++中unordered_set如何遍历
在C++中,遍历unordered_set容器有多种方法。下面是三种常见的方法:
方法一:使用迭代器进行遍历
可以使用迭代器来遍历unordered_set容器中的元素。例如,可以使用auto关键字来定义一个迭代器,并用begin()和end()函数获取unordered_set容器的起始和结束迭代器。然后,使用循环将迭代器逐个移动并输出元素。
示例代码如下:
```
std::unordered_set<std::string> uset{ "http://c.biancheng.net/c/", "http://c.biancheng.net/java/", "http://c.biancheng.net/linux/" };
for (auto iter = uset.begin(); iter != uset.end(); iter++) {
std::cout << *iter << std::endl;
}
```
方法二:使用范围for循环遍历
使用C++11引入的范围for循环语法,可以更简洁地遍历unordered_set容器中的元素。在每次循环中,元素被自动赋值给循环变量,并可以直接输出。
示例代码如下:
```
std::unordered_set<std::string> uset{ "http://c.biancheng.net/c/", "http://c.biancheng.net/java/", "http://c.biancheng.net/linux/" };
for (const auto& element : uset) {
std::cout << element << std::endl;
}
```
方法三:使用算法库函数进行遍历
可以使用算法库函数std::for_each来遍历unordered_set容器中的元素。该函数接受一个函数对象(或Lambda表达式)和容器的起始和结束迭代器,并将函数对象应用于每个元素。
示例代码如下:
```
#include <algorithm>
void printElement(const std::string& element) {
std::cout << element << std::endl;
}
std::unordered_set<std::string> uset{ "http://c.biancheng.net/c/", "http://c.biancheng.net/java/", "http://c.biancheng.net/linux/" };
std::for_each(uset.begin(), uset.end(), printElement);
```
这样就可以使用上述三种方法之一来遍历unordered_set容器中的元素。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [STL无序容器之unordered_set和unordered_multiset](https://blog.csdn.net/andyjkt/article/details/116495385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
unordered_set遍历输出
unordered_set可以使用迭代器进行遍历输出。可以使用begin()函数获取容器的起始位置的迭代器,使用end()函数获取容器的结束位置的迭代器。然后使用循环来遍历容器中的每个元素,并使用*iter来获取元素的值进行输出。以下是一个例子:
```c++
#include <iostream>
#include <unordered_set>
#include <string>
int main() {
std::unordered_set<std::string> uset{ "http://c.biancheng.net/c/", "http://c.biancheng.net/java/", "http://c.biancheng.net/linux/" };
for (auto iter = uset.begin(); iter != uset.end(); ++iter) {
std::cout << *iter << std::endl;
}
return 0;
}
```
这段代码中,我们使用了一个名为uset的unordered_set容器,并通过循环遍历输出容器中的每个元素。每次迭代时,使用*iter来获取当前元素的值,并使用std::cout进行输出。在循环结束后,我们会得到容器中所有元素的遍历输出。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [STL无序容器之unordered_set和unordered_multiset](https://blog.csdn.net/andyjkt/article/details/116495385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文