在向量/矩阵中组合变量

时间:2016-02-06 14:43:29

标签: c++ c++11 visual-c++ matrix vector

我是一名普通的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并分配变量?任何帮助表示赞赏。

1 个答案:

答案 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);