Объединить размер вектора в строку - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь объединить строку с размером вектора.Какой бы метод я ни использовал, я не получаю желаемого результата.Когда я использую cout, он печатается нормально, а когда я смотрю на значение строки в моем отладчике, он выглядит как Schemes(\002).Проблема в том, что мне нужно возвращать строку, а не печатать прямо на консоль, поэтому я не могу использовать cout;Я должен использовать конкатенацию.Почему строка и размер вектора не конкатенируются должным образом?

Желаемая строка: схема (2)

Выводимая строка: схема ()

Код:

using namespace std;    

string s;
vector<Object> schemes;

// Add two elements to vector

// Method 1 (doesn't work)
s += "Schemes(" + schemes.size();
s += ")"; // I can't put this on the same line because I get 'expression must have integral or unscoped enum type' error

// Method 2 (doesn't work)
s += "Schemes(";
s.push_back(schemes.size());
s += ")";

// Method 3 (doesn't work)
s += "Schemes(";
s.append(schemes.size());
s += ")";

1 Ответ

0 голосов
/ 30 января 2019

схема.size () является целочисленным типом.Это означает, что вы пытаетесь объединить целочисленный тип в строковый тип.

Попробуйте

s = "Schemes(" + to_string(schemes.size()) + ")";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...