【发布时间】:2014-06-13 01:17:55
【问题描述】:
我有以下清单:
vector<string> mylist;
我想创建一个新字符串,其中 mylist 中的所有字符串用逗号分隔,多年来我一直在编写丑陋的代码来检查我是否在向量中的最后一个字符串中,以了解我是否应该添加逗号与否。
代码看起来像这样:
for(unsigned int i=0;i<mylist.size(); i++)
{
outstring+=mylist[i];
if(i<mylist.size()-1) // Avoiding the last comma
{
outstring+=",";
}
}
是否有避免 if 语句的技巧,也许是一些使用 STL 的算法/迭代器技巧?
谢谢
【问题讨论】:
-
那个解决方案有什么问题?你有一个“额外的”
if。那又怎样? -
我的(非 C++)方法是 set
outstring到第一个项目,并在循环中添加逗号 + 下一个项目,从1. -
@Jongware 你还需要一个
if来检查if (mylist.size()>0)。 :P -
@herohuyongtao:确实如此。此外,连接字符串很容易。如果“复制”运算符需要更多工作,插入
if会容易得多(然后我宁愿使用if (!i) continue)。