多重嵌套的std::vector如何判断某个元素是否存在vector内部
时间: 2024-09-04 20:00:20 浏览: 44
在C++中,如果要在多重嵌套的`std::vector`结构中判断某个元素是否存在,你可以通过递归遍历各个级别的向量来查找。这里是一个基本的示例:
```cpp
#include <iostream>
#include <vector>
// 假设你有如下的多重向量结构
std::vector<std::vector<int>> multiNestedVector = {
{1, 2, 3},
{4, {5, 6}, 7},
{{8, 9}, 10, {11, 12}}
};
bool findElement(int target, std::vector<int>& vector) {
for (const auto& element : vector) {
if (element == target) {
return true;
}
else if (std::holds_alternative<std::vector<int>>(element)) { // 如果元素是另一个vector
if (findElement(target, std::get<std::vector<int>>(element))) {
return true; // 找到则返回true
}
}
}
return false; // 没找到则返回false
}
int main() {
int searchValue = 6;
if (findElement(searchValue, multiNestedVector)) {
std::cout << "Element found!" << std::endl;
} else {
std::cout << "Element not found." << std::endl;
}
return 0;
}
```
在这个例子中,`findElement`函数会递归地检查每个元素,如果元素是另一个`std::vector`,它会进一步查找那个子向量。如果找到目标值,就返回`true`。
阅读全文