Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么可以';在C+中,我将一个迭代器分配给另一个迭代器+;?_C++_Iterator - Fatal编程技术网

C++ 为什么可以';在C+中,我将一个迭代器分配给另一个迭代器+;?

C++ 为什么可以';在C+中,我将一个迭代器分配给另一个迭代器+;?,c++,iterator,C++,Iterator,我正在写这个函数 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){ 向量v_str={}; 字符串::迭代器str_b;

我正在写这个函数

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){
向量v_str={};
字符串::迭代器str_b;
str_b=开始;
//在这里做点什么
返回v_str;
}
我需要声明一个迭代器,它将等于字符串s的开头,这是我函数中的一个参数

问题在于行
str_b=begin(s)-代码不能用它编译。为什么会这样?我如何修复它

s
是常量对象,所以

begin(s)
返回
string::const_iterator
,不能将
string::const_iterator
分配给
string::iterator
。你可以用电脑来修理它

string::const_iterator str_b;

由于
s
const
限定的,
begin(s)
返回
字符串::const\u迭代器

string::const_iterator str_b;
str_b = begin(s);
或者更好,让
auto
从初始值设定项推断
stru b
的类型:

auto str_b = begin(s);
需要
#包括
。对于
const字符串
,需要使用
std::const\u迭代器
,而不是
std::迭代器