我正在尝试将向量大小的字符串连接起来。无论我使用哪种方法,都无法获得所需的输出。当我使用cout
时,它可以正常打印,当我在调试器中查看字符串的值时,它显示为Schemes(\002)
。问题是:我需要返回一个字符串,而不是直接打印到控制台,所以我不能使用cout
;我必须使用串联。为什么字符串和向量大小不能按预期串联?
所需字符串: schemes(2)
输出的字符串: schemes()
代码:
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 += ")";
答案 0 :(得分:3)
schemes.size()是整数类型。这意味着您正在尝试将整数类型连接为字符串类型。
尝试
s = "Schemes(" + to_string(schemes.size()) + ")";