关于迭代器数据类型的问题

#include<iostream>
#include<vector>
#include<typeinfo>
using   namespace  std;

int  main()
{
    vector<int> v1;
    const vector<int> v2;
    auto it1 = v1.begin();
    auto it2 = v2.begin();
    auto it3 = v1.cbegin();
    cout<<typeid(it1).name()<<endl
        <<typeid(it2).name()<<endl
        <<typeid(it3).name()<<endl;
     return   0 ;
}

it2和it3的类型不应该是const—iterator吗?为什么输出还是iterator

 

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^