[英]Why can't I assign one iterator to another in C++?
我正在写这个函数
vector<string> SplitIntoWords(const string& s) {
vector<string> v_str = {};
string::iterator str_b;
str_b = begin(s);
// TODO some action here
return v_str;
}
我需要声明一个迭代器,它将等于字符串s的开头,这是我函数中的一个参数。
问题在于str_b = begin(s);
- 代码不能用它编译。 为什么这样,我该如何解决?
由于s
是const
-qualified, begin(s)
返回一个string::const_iterator
:
string::const_iterator str_b;
str_b = begin(s);
或者更好,让我们从初始化程序中auto
推断出str_b
的类型:
auto str_b = begin(s);
s
是const对象,所以
begin(s)
返回string::const_iterator
,你不能将string::const_iterator
赋值给string::iterator
。 你可以解决它
string::const_iterator str_b;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.