C ++。来自std :: set的输出元素的格式"(元素,元素,元素)"没有最后","?

时间:2015-04-01 10:23:09

标签: c++ stl set

当我使用std :: list时,我有方法" back()":

for ( it = list->begin(); it != list.back(); it++ ) {
   cout << it.getName() << ", ";
}
cout << it.getName() << endl;
  

输出:(元素,元素,元素)

std :: set没有成员back(),我不能输出最后一个元素而没有&#34;,&#34;:

  

输出:(元素,元素,元素)

1 个答案:

答案 0 :(得分:0)

这对于大多数用途来说已经足够了:

for (auto it = list.begin(); it != list.end(); ++it)
{
   if (it != list.begin()) cout << ", ";
   cout << it->getName();
}

如果您想在输出周围添加( ),只需在循环的任一侧添加cout

如果你疯狂地将条件限制在循环之外:

if (!list.empty())
{
     auto it = list.begin();
     cout << it->getName();
     while (++it != list.end())
         cout << ", " << it->getName();
}