Как считать массив чисел в c++?

179
26 января 2019, 04:00

недавно начал учить с++, до этого изучал python, столкнулся с таким вопросом. Как правильно в c++ считать строку, состоящую из целых чисел, количество которых мы не можем знать? в python,for example, было бы так:

a = [int(i) for i in input().split()]

как такую операцию записать на с++?

Answer 1

Сначала считываем строку целиком через getline, а потом достаем из нее числа с помощью istringstream.

Вот так:

#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream stream(str);
    std::vector<int> vec;
    int x;
    while (stream >> x)
        vec.push_back(x);
    if (!stream.eof())
    {
        std::cout << "Строка имеет неправильный формат.\n";
        return 1;
    }
    for (int x : vec)
        std::cout << x << ' ';
    std::cout << '\n';
}

Если вам нравятся понты веяния modern C++™, то цикл while можно заменить на std::copy(std::istream_iterator<int>(stream), std::istream_iterator<int>(), std::back_inserter(vec));.

READ ALSO
Как вирусы-вымогатели шифруют файлы?

Как вирусы-вымогатели шифруют файлы?

Недавно возник вопрос каким образом трояны на подобие Petya получают доступ к файлам и шифруют их?

151
Как работает выражение i = i++? [дубликат]

Как работает выражение i = i++? [дубликат]

На данный вопрос уже ответили:

174
ScrollingMovementMethod -отключить потемнение при нажатии

ScrollingMovementMethod -отключить потемнение при нажатии

В приложении использую прокрутку в Textview с помощью метода ScrollingMovementMethod()Все отлично работает, но очень раздражает, что при нажатии на Textview...

194
Помогите разобраться в UML диаграмме

Помогите разобраться в UML диаграмме

подскажите по UML диаграмме, с трудом понимаю что данное приложение должно делать, если я верно понял то оно должно анализировать выраженияС-класс...

193