左右分别是:
Command "python setup.py egg_info" failed with error code 1
我希望我的leftRight向量为:
vector<vector<int>> left = {{10, 20}, {30, 40}};
vector<vector<int>> right = {{1, 2}, {3, 4}};
这是我尝试过的方法,但是不起作用:
vector<vector<int> leftRight = {{10, 20, 1, 2}, {30, 40, 3, 4}}
答案 0 :(得分:3)
这些陈述中有错字
leftRight[i].insert(leftRight[i].end(); left[i].begin(), left[i].end());
^^^
leftRight[i].insert(leftRight[i].end(); right[i].begin(), right[i].end());
^^^
使用逗号代替分号。
并且您可能不能将下标运算符用于空向量。
所以你应该写
leftRight.resize(left.size());
代替
leftRight.reserve(left.size());
这是您的程序的更新
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<vector<int>> left = {{10, 20}, {30, 40}};
vector<vector<int>> right = {{1, 2}, {3, 4}};
vector<vector<int>> leftRight;
leftRight.resize(left.size());
for(int i = 0; i < left.size(); i++) {
leftRight[i].reserve(left[i].size() + right[i].size());
leftRight[i].insert(leftRight[i].end(), left[i].begin(), left[i].end());
leftRight[i].insert(leftRight[i].end(), right[i].begin(), right[i].end());
}
for ( const auto &v : leftRight )
{
for ( const auto &item : v ) std::cout << item << ' ';
std::cout << '\n';
}
return 0;
}
其输出为
10 20 1 2
30 40 3 4
答案 1 :(得分:1)
leftRight.reserve(left.size());
这只会保留空间,但实际上不会创建元素。因此,访问任何leftRight[i]
都将失败。
您想要
leftRight.resize(left.size());