set嵌套vector怎么遍历
时间: 2023-06-19 20:02:45 浏览: 196
可以使用两层循环来遍历嵌套的 vector。外层循环遍历 set 中的元素,内层循环遍历 vector 中的元素。
下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main() {
set<vector<int>> s{{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
for (const auto& v : s) {
for (const auto& i : v) {
cout << i << " ";
}
cout << endl;
}
return 0;
}
```
输出:
```
1 2 3
4 5
6 7 8 9
```
相关问题
set嵌套vector怎么遍历(不用auto)
如果你有一个`set<vector<int>>`,可以使用以下方式遍历:
```c++
set<vector<int>> mySet;
// 假设已经插入了一些 vector<int> 元素
set<vector<int>>::iterator it;
for (it = mySet.begin(); it != mySet.end(); it++) {
vector<int> curVec = *it; // 获取当前迭代器指向的 vector<int> 元素
for (int i = 0; i < curVec.size(); i++) {
cout << curVec[i] << " ";
}
cout << endl;
}
```
如果你有一个`vector<set<int>>`,可以使用以下方式遍历:
```c++
vector<set<int>> myVec;
// 假设已经插入了一些 set<int> 元素
for (int i = 0; i < myVec.size(); i++) {
set<int> curSet = myVec[i]; // 获取当前下标对应的 set<int> 元素
set<int>::iterator it;
for (it = curSet.begin(); it != curSet.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
```
注意,在第二个示例中,我们使用了`set<int>::iterator`来遍历集合中的元素。
unordered_set 嵌套vector
unordered_set 嵌套vector 是一种常见的数据结构设计,它可以用于存储一组唯一的元素,并且每个元素可以包含多个值。
在 C++ 中,你可以这样声明和使用一个嵌套的 unordered_set<vector> 数据结构:
```cpp
#include <iostream>
#include <unordered_set>
#include <vector>
int main() {
std::unordered_set<std::vector<int>> setOfVectors;
std::vector<int> vector1 = {1, 2, 3};
std::vector<int> vector2 = {4, 5, 6};
std::vector<int> vector3 = {1, 2, 3}; // 与 vector1 相同
setOfVectors.insert(vector1);
setOfVectors.insert(vector2);
setOfVectors.insert(vector3); // 不会插入,因为 vector3 与 vector1 相同
for (const auto& vector : setOfVectors) {
for (const auto& element : vector) {
std::cout << element << " ";
}
std::cout << std::endl;
}
return 0;
}
```
运行上述代码,输出将是:
```
1 2 3
4 5 6
```
上述代码中,我们声明了一个 `std::unordered_set` 类型的变量 `setOfVectors`,它存储了 `std::vector<int>` 类型的元素。然后我们插入了三个不同的向量,其中 `vector1` 和 `vector3` 的元素相同,因此只有两个向量被插入到集合中。
最后,我们使用两个嵌套的循环遍历并输出集合中的向量及其元素。
希望这段代码能帮到你!如果有任何问题,请随时提问。
阅读全文