【问题标题】:C++.How output elements from std::set in format "(element, element, element)" without last ", "? [duplicate]C ++。如何以格式“(元素,元素,元素)”从std :: set输出元素,没有最后一个“,”? [复制]
【发布时间】:2015-04-01 10:23:08
【问题描述】:

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

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

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

std::set 没有成员 back(),没有“,”我无法输出最后一个元素:

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

【问题讨论】:

  • 你可以使用rbegin,有点不清楚你在做什么为什么不迭代直到it != set.end()

标签: c++ stl set


【解决方案1】:

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

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

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

如果您非常想将条件排除在循环之外:

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

【讨论】:

  • 谢谢。我使用第二种解决方案)如此简单
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2011-05-28
  • 1970-01-01
  • 2019-08-19
  • 2016-12-07
  • 1970-01-01
相关资源
最近更新 更多