我想知道是否可以使用泛型编程将std::vector转换为std::stringstream,以及如何完成这样的事情?
std::vector
std::stringstream
6ljaweal1#
根据Brian Neal的注解,只有在std::vector中为对象定义了<<操作符(在本例中为std::string)时,以下代码才有效。
<<
std::string
#include <iostream> #include <sstream> #include <vector> #include <string> #include <iterator> // Dummy std::vector of strings std::vector<std::string> sentence; sentence.push_back("aa"); sentence.push_back("ab"); // Required std::stringstream object std::stringstream ss; // Populate std::copy(sentence.begin(), sentence.end(),std::ostream_iterator<std::string>(ss,"\n")); // Display std::cout<<ss.str()<<std::endl;
e1xvtsh32#
如果向量的元素类型支持运算符〈〈,则可以选择以下内容:
std::vector<Foo> v = ...; std::ostringstream s; std::copy(v.begin(), v.end(), std::ostream_iterator<Foo>(s));
2条答案
按热度按时间6ljaweal1#
根据Brian Neal的注解,只有在
std::vector
中为对象定义了<<
操作符(在本例中为std::string
)时,以下代码才有效。e1xvtsh32#
如果向量的元素类型支持运算符〈〈,则可以选择以下内容: