我想用自定义分隔符将vector
的内容复制到一个长string
。到目前为止,我已经试过:std ::向带自定义分隔符的字符串向量
// .h
string getLabeledPointsString(const string delimiter=",");
// .cpp
string Gesture::getLabeledPointsString(const string delimiter) {
vector<int> x = getLabeledPoints();
stringstream s;
copy(x.begin(),x.end(), ostream_iterator<int>(s,delimiter));
return s.str();
}
,但我得到
no matching function for call to ‘std::ostream_iterator<int, char, std::char_traits<char> >::ostream_iterator(std::stringstream&, const std::string&)’
我试着charT*
但我得到
error iso c++ forbids declaration of charT with no type
然后我试图使用char
和ostream_iterator<int>(s,&delimiter)
但我在字符串中出现奇怪的字符。
任何人都可以帮助我理解编译器在这里期待什么吗?
是的,如果编译器友好地告诉你它期望的是什么类型的话,这不是很好。顺便说一句,你会在最后一个元素之后得到一个逗号。 – CashCow 2012-02-14 13:54:32
最优雅的方法是使用boost :: algorithm :: join(),如http://stackoverflow.com/a/6334153/2056686 – StefanQ 2016-11-23 12:55:05