我是一名普通的MATLAB用户,但对c ++来说是新手。如果有人能帮我解决问题,我将不胜感激。
我的变量和向量很少。说
#include<iostream>
#include<vector>
int main(){
int a=1; int b=1;
vector<int> V1(100,0);
vector<int> V2(100,0);
return 0;
}
我想将所有变量(a,b,V1,V2)组合成2x101矩阵(比如说M),其中第一行和第二行是
M[0] = {a,V1};
M[1] = {V2,b};
如何定义M并分配变量?任何帮助表示赞赏。
答案 0 :(得分:0)
如果您希望能够在前面或后面插入,那么您应该使用std::deque
。所以你可以做以下
deque<deque<int>> M;
M.push_back(V1);
M.push_front(a);
M.push_back(V2);
M[1].push_back(b);
这将创建一个二维数组或矩阵,其中两个向量为行。
或者你可以创建一个二维向量并手动填写元素
vector<vector<int>> M;
M.resize(2);
// Reserve space for efficiency reasons, this prevents reallocation
M[0].reserve(V1.size() + 1);
M[0].push_back(a);
for (auto integer : V1) {
M[0].push_back(integer);
}
M[1].reserve(V2.size() + 1);
for (auto integer : V2) {
M[1].push_back(integer);
}
M[1].push_back(b);