c++ - 如何声明 vector::size_type 的 vector ?

标签 c++ stl c++14

我想要一个 vector ,其元素的类型为 vector::size_type

但是,您不能声明:

vector<vector::size_type> aVec;

因为 size_type 是模板本身的一部分,所以你必须使用类型本身,我需要这样的东西:

vector<vector<T>::size_type> aVec;

但是 T 应该是什么?这真的是一个循环问题。 :)

如果 vector 刚刚使用 size_t 作为其大小类型(但没有针对 size_type 的特殊 typedef,它可能会根据 vector 所持有的类型而有所不同),我可以这样做:

vector<size_t> aVec;

但是,事实并非如此。我怀疑它被允许改变是有正当理由的,但是通过将它作为模板化 vector 类的一部分而不是在它之外,这使得这变得困难。

想法?

最佳答案

std::vector<>::size_typestd::size_t 类型的静态成员类型所以你应该安全 std::vector<std::size_t> vec

关于c++ - 如何声明 vector::size_type 的 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36483817/

相关文章:

c++ - 在SGI STL的实现中,vector的push_back函数没有使用默认参数

c++ - 为什么我不应该#include <bits/stdc++.h>?

c++ - 如何使用 x11 中的 xft 字体在窗口中心对齐文本

c++ - 为什么不同类别的 STL 算法调用不同?

c++ - 我可以使用 Boost.Spirit 进行多功能数学 (AST) 模式匹配和操作吗?

c++ - operator const Base&() 是否应该用于不可访问的基类?

c++ - 重新解释强制转换为不同类型的C++

c++ - std::wstring_convert 线程的成员函数是否安全?

c++ - 可以具有存储相互连续的实例的类似 vector 的容器?

c++ - boost::adaptor::filtered core dumps with boost::range_detail::default_constructible_unary_fn_wrapper "Assertion ` m_impl' 失败”