Nic*_*man 5 c++ printing vector pretty-print c++11
我正在尝试打印一个以逗号分隔的单个详细信息列表std::vector<MyClass>.到目前为止,我所看到的最简单,最聪明的方法是使用
std::ostringstream ss;
std::copy(vec.begin(), vec.end() - 1, std::ostream_iterator<std::string>(ss, ", "))
ss << vec.back();
Run Code Online (Sandbox Code Playgroud)
当我打印一个字符串向量时,这工作正常.但是,现在我正在尝试打印一个关于的细节MyClass.我知道在Python中我可以做类似的事情
(x.specific_detail for x in vec)
Run Code Online (Sandbox Code Playgroud)
得到我感兴趣的东西的生成器表达式.我想知道我是否可以在这里做类似的事情或者我是否被困在做
for (auto it = vec.begin(); it != vec.end(); ++it) {
// Do stuff here
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*rew 13
解决这个问题的一种方法我看到:
std::string separator;
for (auto x : vec) {
ss << separator << x.specific_detail;
separator = ",";
}
Run Code Online (Sandbox Code Playgroud)