如何获取嵌套向量的尺寸(嵌套性)(不是大小)
How do I get the dimensions (nestedness) of a nested vector (NOT the size)?
请考虑以下声明:
vector<vector<int> > v2d;
vector<vector<vector<string>> > v3d;
如何在后续代码中找出向量的"维数"?例如,2 表示 v2d,3 表示 v3d?
这些行的内容:
template<class Y>
struct s
{
enum {dims = 0};
};
template<class Y>
struct s<std::vector<Y>>
{
enum {dims = s<Y>::dims + 1};
};
然后例如,
std::vector<std::vector<double> > x;
int n = s<decltype(x)>::dims; /*n will be 2 in this case*/
具有吸引人的属性,即所有评估都在编译时进行。
你可以做这样的事情:
template<typename T>
int getDims(const T& vec)
{
return 0;
}
template<typename T>
int getDims(const vector<T>& vec)
{
return getDims(T{})+1;
}
旁注:此数量有时称为"等级"。
相关文章:
- 选择和修改嵌套向量中的条目的最佳实践
- 嵌套向量的缺点是什么?
- 删除嵌套向量中具有remove_if的元素
- 在循环访问嵌套向量时删除元素
- C++:清除嵌套向量会导致奇怪的结果
- 类字符串和嵌套向量C
- 如何在C 中打印出嵌套向量的内容
- 使用嵌套向量动态分配方阵
- 在嵌套向量C 中获取特定元素
- C++崩溃:push_back嵌套向量
- 初始化嵌套向量的大小
- 针对大型嵌套向量的高效内存分配
- 初始化具有预留容量的嵌套向量的子向量
- 如何获取嵌套向量的尺寸(嵌套性)(不是大小)
- 如何创建一个完全动态的嵌套向量
- 是在连续空间中分配的嵌套向量
- 如何在嵌套向量中获取元素类型
- 使用具有嵌套向量的迭代器的意外行为
- 2 个对象的 STL 嵌套向量
- 嵌套c++向量的重新定位