[英]How to nicely output a list of separated strings?
通常,當我必須顯示一個單獨的字符串列表時,我做了類似的事情:
using namespace std;
vector<string> mylist; // Lets consider it has 3 elements : apple, banana and orange.
for (vector<string>::iterator item = mylist.begin(); item != mylist.end(); ++item)
{
if (item == mylist.begin())
{
cout << *item;
} else
{
cout << ", " << *item;
}
}
哪個輸出:
apple, banana, orange
我最近發現了std::ostream_iterator
,如果發現它真的很好用。
但是使用以下代碼:
copy(mylist.begin(), mylist.end(), ostream_iterator<string>(cout, ", "));
如果得到:
apple, banana, orange,
幾乎完美,除了額外的,
。 是否有一種優雅的方式來處理特殊的“第一個(或最后一個)元素”並且具有與第一個代碼相同的輸出,而沒有它的“復雜性”?
雖然沒有std:
cout << boost::algorithm::join(mylist, ", ");
編輯:沒問題:
cout << boost::algorithm::join(mylist |
boost::adaptors::transformed(boost::lexical_cast<string,int>), ", "
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.