push_back矢量到另一个向量

时间:2011-12-07 07:51:51

标签: c++ stl vector

我希望将push_back()向量M导入向量N

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int i = -1;
    vector<vector<int> >N,
    vector<int>M;
    int temp;

    while (i++ != 5)
    {
        cin >> temp;
        N.push_back(temp);
    }

    N.push_back(vector<int>M);
    return 0;
}

编译错误

我收到语法错误。

test.cpp: In function ‘int main()’:
test.cpp:28: error: invalid declarator before ‘M’
test.cpp:34: error: no matching function for call to ‘std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >::push_back(int&)’
/usr/include/c++/4.4/bits/stl_vector.h:733: note: candidates are: void std::vector<_Tp, _Alloc>::push_back(const _Tp&) [with _Tp = std::vector<int, std::allocator<int> >, _Alloc = std::allocator<std::vector<int, std::allocator<int> > >]
test.cpp:37: error: ‘M’ was not declared in this scope
coat@thlgood:~/Algorithm$ 

4 个答案:

答案 0 :(得分:5)

这一行

N.push_back(vector<int>M);

应该是

N.push_back(M);

另外

vector<vector<int> >N,

应该是

vector<vector<int> >N;

答案 1 :(得分:3)

你需要

M.push_back(temp);
除了@StilesCrisis'回答中指出的无效语法之外,在while循环中

答案 2 :(得分:3)

你有一些小错误。

你可以通过查看你得到的每个编译错误来解决它们,并思考它意味着什么。如果错误不明确,您可以查看错误的行号,并考虑可能导致错误的行号。

参见工作代码:

int main()
{
    int i = -1;
    vector<vector<int> >N;
    vector<int>M;
    int temp;

    while (i++ != 5)
    {
        cin >> temp;
        M.push_back(temp);
    }

    N.push_back(M);
    return 0;
}

答案 3 :(得分:0)

N.insert(N.end(),M.begin(),M.end());