簡體   English   中英

如何很好地輸出分隔字符串列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM