初始化向量迭代器

jsh*_*hah 0 c++ iterator vector

我正在尝试初始化向量迭代器,以便可以在向量中搜索元素。但是,当我尝试对其进行初始化时,出现转换错误。不知道是什么问题,有帮助吗?

int solution(int K, const vector<int> &A) {
    int count=0,size,comp=0;
    //int *index;
    vector<int>::iterator index;

    size = A.size();

    for(int i=0;i<size;i++){
        comp = K-A[i];
        index = find(A.begin(),A.end(),comp);
        cout <<"index: " << *index << endl;
        if(*index + A[i] == K)
            count++;
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

错误是候选函数(隐式副本赋值运算符)不可行:对于第一个参数类__normal_iterator,没有从'__normal_iterator'到'const __normal_iterator'的已知转换

cbe*_*bel 5

你应该写这个

vector<int>::const_iterator index;
Run Code Online (Sandbox Code Playgroud)

因为A是const vector,其元素无法突变。而且const_iterator用于只读,但不能修改其指向的元素。