C++ 如何获取const std::vector的::迭代器<;T>;

C++ 如何获取const std::vector的::迭代器<;T>;,c++,C++,我想从const std::vector中获取迭代器,但找不到向编译器解释的方法。 这就是它的样子: (const std::vector<T>)::iterator (const std::vector)::迭代器 解决方法:typedef或使用 template<typename T> using const_vec = const std::vector<T>; const_vec::iterator ... 模板 使用const_vec=cons

我想从
const std::vector
中获取
迭代器
,但找不到向编译器解释的方法。 这就是它的样子:

(const std::vector<T>)::iterator
(const std::vector)::迭代器
解决方法:typedef或使用

template<typename T>
using const_vec = const std::vector<T>;
const_vec::iterator ...
模板
使用const_vec=const std::vector;
常量向量::迭代器。。。

更新。例如std::vector::iterator。问题是关于C++语法。

> P>可以使用<代码> STD::vector:: 向量v{1,2,3,4,5}; std::vector::const_迭代器it=v.begin(); 或者只是利用
auto
的优势,比如:

向量v{1,2,3,4,5}; 自动it=v.begin();
限定符
const
不会改变类型定义的任何内容。因此,
const std::vector
中的
iterator
类型与
std::vector
中的类型相同。只用

std::vector<T>::iterator
不过,您可能不希望使用
迭代器
,因为没有
std::vector
函数可以在
const
限定实例上返回
迭代器。您可能需要
常量迭代器

通常,您不需要访问迭代器类型别名。您可以从变量定义中的
auto
获取正确的类型:

const std::vector<T> vec{/* ... */};
auto it = vec.begin();

您应该阅读文档

它与
std::vector::iterator
没有什么不同
const\u iterator
可能更适合..还要记住,
auto
是一件事。这个答案我需要在模板推导中使用它。不是简单的for循环。谢谢你们的回答,伙计们。但是我没有描述这个用例。
const std::vector<T> vec{/* ... */};
auto it = vec.begin();
const std::vector<T> vec{/* ... */};
using iterator = decltype(vec.begin());