我想使用自定义分隔符将 vector
的内容复制到一个长的 string
中。到目前为止,我已经尝试过:
// .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)
但字符串中出现了奇怪的字符。
任何人都可以帮助我理解编译器在这里的期望吗?
原文由 nkint 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
delimiter.c_str()
作为分隔符:这样,您会得到一个
const char*
指向字符串,这就是ostream_operator
对您的std::string
--- 的期望。