Ida*_*dan 1 c++ iterator const vector const-iterator
如果我有一个包含另一个向量的迭代器的向量.
例如 :
vector<vector<int>::iterator> vec;
Run Code Online (Sandbox Code Playgroud)
在const refrence中传递这个向量会发生什么?
例如:
void fun(const vector<vector<int>::iterator> &vec);
Run Code Online (Sandbox Code Playgroud)
函数内部的vec元素是有趣的const_iterator还是迭代器?可以修改它们吗?
提前致谢!
不,他们不是const_iterator.主要是因为const_iterator用户定义的类型与iterator用户定义的转换相关,而实际上并不是const限定的iterator.(1)
您通过向量访问函数内部的内容是const iterator&.
因此,您可以使用它们来修改它们引用的元素.
到这一点,最好的比喻是,const_iterator是iterator,是什么const T*是T*.而你的功能中的内容类似于T * const.
(1)在纸面上,就是这样.对于向量,它可能是优化代码中的普通指针.在这种情况下,类比成为现实.
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |