gpt4 book ai didi

c++ - 输出以空格分隔的列表

转载 作者:行者123 更新时间:2023-11-30 02:36:48 29 4
gpt4 key购买 nike

我正在重载运算符 << 以输出由空格分隔的容器:

std::ostream& operator<< (std::ostream &os, const MyContainer &v)
{
os << "[";
for (const auto &i : v) {
os << i << " ";
}
os << "\b]"; // <--
return os;
}

MyContainer c{1,2,3};
std::cout<<c<<std::endl;

我正在使用 '\b' 来避免列表末尾的额外空间,它与上面的代码一起工作正常。

但这可能不是一个好主意,'\b' 是否可以与其他类型的 ostream 一起使用?还有其他想法可以像这样输出数据吗?

最佳答案

But it might not be a good idea, does '\b' work well with other types of ostream?

关于这不是一个好主意,你是完全正确的:'\b' 在控制台模式下工作正常,但它不能很好地播放其他流,例如文件。

更好的方法是首先不输出额外的空间:

std::ostream& operator<< (std::ostream &os, const MyContainer &v)
{
os << "[";
auto first = true;
for (const auto &i : v) {
if (!first) {
os << " ";
} else {
first = false;
}
os << i;
}
os << "]";
return os;
}

关于c++ - 输出以空格分隔的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32343836/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com