Ввод в массив через клавиатуру c++

Уважаемые программисты, возник такой вопрос: можно ли в c++ сделать ввод в массив численного типа(допустим int) заранее не сообщая компилятору сколько там будет элементов? Допустим ввожу я числа 12 423 111 2, потом делаю вывод массива и он мне выводит эти же числа? Как бы чтобы он сам понимал сколько там элементов сразу в момент ввода. Вроде как с векторами что-то такое можно делать или даже с обычным массивом с указателем.


Ответы (1 шт):

Автор решения: vlad9i2

Можно, например так, если вы нажмёте CTRL+D при завершении ввода:

    int x;
    std::vector<int> a;
    while(std::cin >> x) {
        a.push_back(x);
    }
    for(int i = 0; i < a.size(); ++i) {
        std::cout << a[i] << " ";
    }
    std::cout << std::endl;

Если считать, что переносом строки заканчивается массив, то вот так:

int main()
{
    int x;
    std::vector<int> a;
    std::stringstream ss;
    std::string s;
    std::getline(std::cin, s);
    ss << s;
    while(ss >> x) {
        a.push_back(x);
    }
    for(int i = 0; i < a.size(); ++i) {
        std::cout << a[i] << " ";
    }
    std::cout << std::endl;
}
→ Ссылка