Как поместить числа целого числа в вектор в переполнении стека

Если пользователь вводит целое число, например 4210, например, как я могу поместить каждое число этого целого в вектор в C ++?

4

Решение

Это можно сделать так:

std::vector<int> numbers;
int x;
std::cin >> x;
while(x>0)
{
numbers.push_back(x%10);
x/=10;
}

std::reverse(numbers.begin(), numbers.end());
5

Другие решения

Или, если вы предпочитаете использовать std::string ты можешь использовать:

std::vector<int> intVector;

int x;
std::cin >> x;

for (const auto digit : std::to_string(x)) {
intVector.push_back(digit - '0');
}

Это предполагает, что ваш компилятор может использовать C ++ 11.

Живой пример

0

Я не понимаю, почему люди советуют такой раунд о решениях, таких как преобразование назад и вперед в int когда все, что вам нужно, это цифра за цифрой … для числа, выраженного пользователем в десятичном виде.

Преобразовывать "4321" в std::vector<int>{4, 3, 2, 1} самый простой способ будет:

std::string input;
std::cin >> input;

std::vector<int> vec;

for (char const c: input) {
assert(c >= '0' and c <= '9' and "Non-digit character!");
vec.push_back(c - '0');
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector