vector和Qvector转换
时间: 2023-10-14 13:12:29 浏览: 701
vector2d:Ruby库(和gem),用于处理二维向量
在 Qt 中,QVector 是 Qt 提供的 STL 容器之一,与 std::vector 类似。如果需要将 std::vector 转换为 QVector,可以使用 QVector 的构造函数,如下所示:
```c++
std::vector<int> vec = {1, 2, 3, 4, 5};
QVector<int> qVec(vec.begin(), vec.end());
```
如果需要将 QVector 转换为 std::vector,可以使用 std::vector 的构造函数,如下所示:
```c++
QVector<int> qVec = {1, 2, 3, 4, 5};
std::vector<int> vec(qVec.begin(), qVec.end());
```
也可以使用 std::copy 或 std::copy_n 算法进行转换,如下所示:
```c++
QVector<int> qVec = {1, 2, 3, 4, 5};
std::vector<int> vec(qVec.size());
std::copy(qVec.begin(), qVec.end(), vec.begin());
```
```c++
std::vector<int> vec = {1, 2, 3, 4, 5};
QVector<int> qVec(vec.size());
std::copy(vec.begin(), vec.end(), qVec.begin());
```
需要注意的是,QVector 和 std::vector 的内存布局不同,因此在进行转换时需要进行复制,可能会产生额外的开销。
阅读全文