输入没有预定义长度的向量...?

时间:2019-04-20 18:46:56

标签: c++ vector

假设,我想在向量中添加所有元素,并想将结果打印出来。我要输入的元素数量不是固定的。 让输入为:
3
5 2 8 5
34 64 23 10 8 12 5 4
95 22 1 3 531 5 13 1 3 1

她的第一行是测试用例//即。 3
另外三行是用户输入

2 个答案:

答案 0 :(得分:0)

如果要为向量保留一些空间,可以看看std::vector::reserve函数。

您可以创建2D矢量:

#include <iostream>
#include <vector>
#include <sstream>

using namespace std;

int main() {
    int size;    
    cin >> size;
    vector<vector<int> > vec;
    vec.resize(size);
    for (int i = 0; i <= size; i++) {
        vector<int> input;
        int number;
        string line;
        getline(cin, line);
        stringstream ss(line);
        while (ss >> number) input.push_back(number);
        vec.push_back(input);
    }

    for (auto i: vec)
        for (auto j: i)
            cout << j << endl;

    return 0;
}

答案 1 :(得分:0)

string line;
int n;
vector<int> v;

getline(cin, line);
istringstream stream(line);
while (stream >> n )
    v.push_back(n);

for(auto i=v.begin();i!=v.end();i++){
    cout << *i << " ";
}