Если пользователь вводит целое число, например 4210, например, как я могу поместить каждое число этого целого в вектор в C ++?
Это можно сделать так:
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());
Или, если вы предпочитаете использовать 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.
Я не понимаю, почему люди советуют такой раунд о решениях, таких как преобразование назад и вперед в 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');
}