C++如何用一条输出语句将vector中所有元素打印在一行?
解决方案
当然可以做到,std::cout是全局的输出流对象,所有std::cout<<操作都是在同一个流上追加内容,只要控制好换行符的位置,就能实现一行输出的需求。
修改后的基础代码
int k = 1; std::cout << "my vector names are :"; for (auto& v : vec1) { // 使用引用避免结构体拷贝,提升效率 std::cout << " " << k++ << " " << v.name; } std::cout << std::endl; // 最后统一换行
这段代码会输出:
my vector names are : 1 name1 2 name2 ...
优化版(处理空vector场景)
如果需要避免vector为空时,冒号后出现多余空格,可以添加简单的判断:
int k = 1; std::cout << "my vector names are :"; if (!vec1.empty()) { // 输出第一个元素 std::cout << " " << k++ << " " << vec1[0].name; // 输出剩余元素 for (size_t i = 1; i < vec1.size(); ++i) { std::cout << " " << k++ << " " << vec1[i].name; } } std::cout << std::endl;
说明
所有上述写法都只使用了同一个std::cout流对象——多次<<操作都是在同一个流上连续追加内容,只要不插入std::endl或'\n',内容就会保持在同一行输出。
内容的提问来源于stack exchange,提问作者elmirage888
相关产品推荐
相关产品推荐

