C++。如何以“(元素,元素,元素)”格式输出 std::set 中没有最后一个“,”的元素?
C++.How output elements from std::set in format "(element, element, element)" without last ", "?
当我使用 std::list 时,我有方法 "back()":
for ( it = list->begin(); it != list.back(); it++ ) {
cout << it.getName() << ", ";
}
cout << it.getName() << endl;
output: (element, element, element)
std::set 没有成员 back(),没有 ", " 我无法输出最后一个元素:
output: (element, element, element, )
这足以满足大多数用途:
for (auto it = list.begin(); it != list.end(); ++it)
{
if (it != list.begin()) cout << ", ";
cout << it->getName();
}
如果您想要 (
)
围绕输出,只需在循环的任一侧添加 cout
s。
如果您热衷于将条件语句排除在循环之外:
if (!list.empty())
{
auto it = list.begin();
cout << it->getName();
while (++it != list.end())
cout << ", " << it->getName();
}
当我使用 std::list 时,我有方法 "back()":
for ( it = list->begin(); it != list.back(); it++ ) {
cout << it.getName() << ", ";
}
cout << it.getName() << endl;
output: (element, element, element)
std::set 没有成员 back(),没有 ", " 我无法输出最后一个元素:
output: (element, element, element, )
这足以满足大多数用途:
for (auto it = list.begin(); it != list.end(); ++it)
{
if (it != list.begin()) cout << ", ";
cout << it->getName();
}
如果您想要 (
)
围绕输出,只需在循环的任一侧添加 cout
s。
如果您热衷于将条件语句排除在循环之外:
if (!list.empty())
{
auto it = list.begin();
cout << it->getName();
while (++it != list.end())
cout << ", " << it->getName();
}