我知道如何用其他语言来做这件事,而不是C++,我不得不在这里使用它.
我有一组字符串,我打印到列表中,并且每个字符串之间需要逗号,但不是逗号.例如,在java中,我会使用stringbuilder,并在构建字符串后删除逗号.我如何用C++做到这一点?
auto iter = keywords.begin();
for (iter; iter != keywords.end( ); iter++ )
{
out << *iter << ", ";
}
out << endl;
Run Code Online (Sandbox Code Playgroud)
我最初尝试插入此块来执行此操作(在此处移动逗号打印)
if (iter++ != keywords.end())
out << ", ";
iter--;
Run Code Online (Sandbox Code Playgroud)
我讨厌小东西把我绊倒的时候.
编辑:谢谢大家.这就是我在这里发布这样的东西的原因.这么多好的答案,并以不同的方式解决.经过一个学期的Java和汇编(不同的类),不得不在4天内完成一个C++项目,这让我陷入了困境.我不仅得到了答案,还有机会思考解决这类问题的不同方法.真棒.
我正在使用如下所示的数据结构:
map<string, set<string>> data;
Run Code Online (Sandbox Code Playgroud)
到目前为止,我使用foreach循环处理地图没有任何问题,但是,现在我需要打印出地图中的数据,如下所示:
KEY: elem1, elem2, elem3
KEY2: elem1, elem2, elem3
Run Code Online (Sandbox Code Playgroud)
由于最后缺少逗号,我不能再使用foreach循环了(我可以吗?).由于我是C++,C++ 11以及它提供的所有乐趣的新手,我很遗憾.我提出了:
for ( auto i : data )
{
cout << i.first << ": ";
for ( size_t i = 0; i < /* size of the set */ - 1; i ++ )
cout << j << ", ";
cout << /* the last element of the set */ << endl;
}
Run Code Online (Sandbox Code Playgroud)
我知道我想要什么,我只是不知道语法和C++参考没有多大帮助.感谢您的回答,同时我将自己浏览C++参考.
LANGUAGE:C++ 你好,在下面的函数(代码块)中我写了一行来打印字符之间的空格,但我不想在最后一个字符后面打印空格.我怎么解决这个问题?
bool perfecto(int n)
{
int suma, i;
suma = 0;
for (i = 1; i < n; i++)
{
if (n % i == 0)
{
suma += i;
cout << i << " ";
}
}
if (suma == n)
return true;
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
最好的祝福.ÁngelManuel.