在 STL 中,如何交换二维向量
in STL, how to swap 2 dimension vector
在头文件中,我将以下内容声明为公共成员变量:
vector< vector<unsigned char> > arImage;
在源代码中,我定义了 temp
vector<vector<unsigned char> > temp (numImage, vector<unsigned char>(sizeImage));
现在我试着,
temp.swap(arImage);
但是发生了错误。(细节错误被省略,因为它们不是英文)
with
[
_Ty=std::vector<unsigned char>
]
///加法
我想交换
vector<vector<unsigned char> > to vector<vector<unsigned char> >
我正在与MFC合作。我找不到合适的方法,所以我实际上采取了另一种方法。
在头文件中,
vector< vector<unsigned char> > * arImage;
在源代码中,
arImage = new vector< vector<unsigned char> > (numImage, vector<unsigned char>(sizeImage));
但这种方法并不舒服。(这种方法没有错误)
我想使用 arImage[i][j].
在这种方法中,我必须使用(*arImage)[i][j]
你在这里做错的事情是你试图用vector< unsigned char >
的向量交换vector< unsigned char >
这是不可能的。
Vector arImage
具有 unsigned char
类型的项目,而临时类型为 vector<vector<unsigned char> >
,因此临时项目vector<unsigned char>
。
所以这是有道理的,因为不能vector<unsigned char>
与unsigned char
交换。同样,您不能将vector< unsigned char >
与vector <vector< unsigned char >>
交换。
我希望它能解释一切。
你必须
选择必须在你的temp
中交换的索引:
int index = 0;
temp[index].swap(arImage);
您将 temp 声明为矢量的矢量 (2D)。因此,交换将使用相同类型的变量执行(这是合乎逻辑的)。但是你试图用一维向量交换什么是错误的,这就是编译器对你说的。
相关文章:
- 将二维矢量传递给类
- 将值从二维数组输出到文本文件
- 我在二维向量中是否正确分配了内存
- 带结构的二维矢量:如何存储元素
- 在二维数组中查找最小值和最大值?
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- 如何在C++中获取二维数组中最少的一列数?
- 如何使用用户输入变量制作二维数组?
- C++ 中的二维整数数组,每行中的元素数量不均匀
- C++ 中动态二维数组的访问冲突
- 在二维向量或数组中可以存储的最大元素数是多少?
- 如何将整数字符串转换为整数的二维向量?
- 二维矢量数据成员
- 增强::STL 容器中分散的二维点的convex_hull
- 想要使用 STL 扫描 C++ 中的二维数组
- 在 STL 中,如何交换二维向量