繁体   English   中英

为什么我不能在C ++中将一个迭代器分配给另一个迭代器?

[英]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); - 代码不能用它编译。 为什么这样,我该如何解决?

由于sconst -qualified, begin(s)返回一个string::const_iterator

string::const_iterator str_b;
str_b = begin(s);

或者更好,让我们从初始化程序中auto推断出str_b的类型:

auto str_b = begin(s);

sconst对象,所以

begin(s)

返回string::const_iterator ,你不能将string::const_iterator赋值给string::iterator 你可以解决它

string::const_iterator str_b;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM