【发布时间】:2021-11-25 18:20:47
【问题描述】:
我正在尝试将vector<int> 转换为字符串,开头为'[',向量的每个元素之间为',',最后为']'。但我的输出是[,,,,](想要的输出[6,4,3,2,1])。
你能解释一下我做错了什么吗?
这是我尝试过的:
int main() {
std::vector<int> elements = {1,2,3,4,6};
std::string outputString = "[";
for(int i = elements.size() - 1; i >= 0; i--) {
if (i > 0) {
outputString.push_back(elements.at(i));
outputString.push_back(',');
}
else {
outputString.push_back(elements.at(i));
}
}
outputString.push_back(']');
std::cout << std::endl << outputString << std::endl;
}
【问题讨论】:
-
您认为
outputString.push_back(elements.at(i));会做什么?你了解1和'1'的区别吗? -
更好的方法是创建一个函数,该函数接受开始和结束迭代器以及分隔符,并返回字符串。那么你就不仅仅局限于使用向量了。
-
我会使用
std::ostringstream来完成这项任务