Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Вектор целых чисел

Автор вопроса: AcebondОтветов: 3

Я хотел бы преобразовать вектор в целое число. Я могу вывести вектор, используя

vector <int> iV;

iV.push_back(3);
iV.push_back(8);
iV.push_back(6);

copy(iV.begin(),iV.end(),ostream_iterator<int>(cout,""))

Но как я могу получить это в int?

РЕДАКТИРОВАТЬ: Использование stringstream отлично подходит для того, что я делаю. Я действительно хотел увидеть, как именно это выглядит через cout. Я не хотел точного int от int, я имел в виду один единственный int, поэтому для моего примера это будет int, равный 386. Спасибо всем за помощь, очень ценю это.

  • Что вы ожидаете от int в этом случае? Ignacio Vazquez-Abrams 09.10.2011
  • @IgnacioVazquez-Abrams то же самое, что он видит через cout? Muhammad Hasan Khan 09.10.2011
  • @Acebond: Вы имеете в виду, что хотите извлечь значения int с помощью int? это оно? Roee Gavirel 09.10.2011

c++vectorint

Ответы

Ответ 1 · Muhammad Hasan Khan

Запишите его в stringstream, а затем прочитайте из него так:

std::stringstream strStream;
copy(iV.begin(),iV.end(),ostream_iterator<int>(strStream,""));
int myInt;
strStream >> myInt;

Ответ 2 · Itamar Katz

Я не уверен, что вы это имеете в виду, но вы могли бы сделать:

int * ip = &iv[0];

а затем получить доступ к ip[0], ip[1] и т. д.

Ответ 3 · Steve

Попробуйте что-то вроде этого:

int total = 0;
for(vector<int>::const_iterator i = iV.begin(); i != iV.end(); ++i)
    total = total*10 + *i;

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы