如何从2D向量中提取单行并分配给1D向量
How to extract a single row from a 2D vector and assign to a 1D vector?
考虑以下代码:
vector < vector <double > > xor_input;
xor_input.resize ( 6 );
for (int i = 0; i < xor_input.size(); i++){
xor_input[i].resize( 100 );
}
xor_input.resize( 6 );
for(int i = 0; i < xor_input.size(); i++){
xor_input[i].resize( 100 );
for( int j = 0; j < xor_input[i].size(); j++){
xor_input[i][j] = image_load[i][j];
}
}
vector < double > xor_output;
xor_output.resize( 6 );
for(int i = 0; i < xor_output.size(); i++){
xor_output[i] = xor_input[i];
}
我正在加载6张图像到2D矢量(xor_input)。我需要存储从2D向量(xor_input)到1D向量(xor_output)的单行(这是一个图像)。
xor_output应该包含从xor_input 2D矢量加载的确切图像,以便进一步比较。
问题是xor_output是1D矢量,xor_input是2D矢量,我需要将xor_input的单行存储到xor_output中。
我得到以下错误:
error: cannot convert ‘__gnu_cxx::__alloc_traits<std::allocator<std::vector<double> > >::value_type {aka std::vector<double>}’ to ‘__gnu_cxx::__alloc_traits<std::allocator<double> >::value_type {aka double}’ in assignment
xor_output[i] = xor_input[i];
^
xor_output[i] = xor_input[i];
1) xor_output[i]是双精度类型。<——不是你想要的
2) xor_input[i]是一个双精度数组。
3) xor_output也是一个双精度数组<——这就是你想要的。
xor_output = xor_input[i];
将调用vector的操作符=将右操作数vector的值复制(而不是提取)到左操作数vector。
简而言之,您的左操作数是单个双精度对象,而不是您期望的vector对象。
相关文章:
- 用字符串的向量分配字符串向量
- 如何将向量分配给参考变量?
- 如何将C++向量分配给非表全局变量
- 向量分配上的 C++ 分割错误
- 如何将int分解为数字并以相同的顺序为向量分配数字
- 将向量分配给一个元素
- 将向量分配给向量向量的向量时,向量是范围的
- 带有Valgrind的C 的向量分配中的内存泄漏
- 将向量分配给另一个
- 为向量分配内存
- 为结构的整个向量分配结构的元素
- 将向量分配给结构的向量字段
- C++对象的向量:分配对象
- C++:通过从映射向量分配映射实例来填充映射的映射
- 将儿童的向量分配给祖父母的向量
- 使用 std::向量分配的类比 LOT 的指针分配慢
- C++ 向量分配问题
- 为什么向量分配会改变分配的向量
- 在C++中初始化向量时,你能给向量分配一个大的内存块吗
- 向量分配中的问题