std::vector<std::vector<cv::Vec7f>> 与std::vector<cv::Vec7f>之间的赋值
时间: 2023-08-25 08:17:52 浏览: 90
这两个类型之间的赋值是不允许的,因为它们是不同的类型。`std::vector<std::vector<cv::Vec7f>>`是一个二维向量,每个元素都是一个`std::vector<cv::Vec7f>`,而`std::vector<cv::Vec7f>`是一个一维向量,个元素都是一个`cv::Vec7f`。它们的维度不同,无法直接赋值。
如果你想要将二维向量的元素赋值给一维向量,你可以使用循环或者算法来实现。例如:
```cpp
std::vector<std::vector<cv::Vec7f>> twoDVector;
std::vector<cv::Vec7f> oneDVector;
// 假设twoDVector已经被初始化并填充了数据
for (const auto& innerVec : twoDVector) {
for (const auto& element : innerVec) {
oneDVector.push_back(element);
}
}
```
或者使用算法库中的函数,比如`std::copy`:
```cpp
std::vector<std::vector<cv::Vec7f>> twoDVector;
std::vector<cv::Vec7f> oneDVector;
// 假设twoDVector已经被初始化并填充了数据
for (const auto& innerVec : twoDVector) {
std::copy(innerVec.begin(), innerVec.end(), std::back_inserter(oneDVector));
}
```
这些方法可以将二维向量的元素逐个复制到一维向量中。请注意,这只是将元素进行复制,而不是共享同一内存地址。
阅读全文