admin管理员组

文章数量:1666727

const vector作为函数形参时,要使用迭代器,必须用const_iterator,否则编译不通过。
报错如下:

error: conversion from ‘std::vector<int>::const_iterator {aka __gnu_cxx::__normal_iterator<const int*, std::vector<int> >}’ to non-scalar type ‘std::vector<int>::iterator {aka __gnu_cxx::__normal_iterator<int*, std::vector<int> >}’ requested
     vector<int>::iterator my = test.begin();

正确写法如下:

void print_vector(const vector<int>& test) {
    vector<int>::const_iterator my = test.begin();
    while(my != test.end()) {
        cout << "my - test.begin() = " << my - test.begin() << endl;
        cout << *my++ << "\n"; //先取值再++
    }
    cout << endl;
}

本文标签: VectorINTstdErrorconversion