从数组的类型中获取数组的大小
Get the size of an array from its type
我有一个模板参数T,我知道它将是
MyArray<Tbis, n>
有没有一种方法可以返回整数n,这样我就可以将其用作模板参数?
致问候,
如果我正确理解这个问题,那么您需要获得数组的大小,并将其用作模板参数。为此,您可以使用size(),因为它是一个constexpr。
类似这样的东西:
#include <iostream>
#include <array>
typedef std::array< int, 72 > myArray;
template< int N = myArray().size() >
struct A
{
void foo()
{
std::cout << N << std::endl;
}
};
int main()
{
A<> a;
a.foo();
}
这就是您想要做的吗?
#include <iostream>
#include <array>
template <typename T, size_t N>
void f(std::array<T, N>& a)
{
std::cout << N << 'n';
}
int main()
{
std::array<int, 34> a;
f(a);
}
是。成员函数(至少在Visual Studio 2010上)size()
和max_size()
都返回项数。
#include "stdafx.h"
#include <array>
#include <iostream>
template<class T>
int tuple_size(T t)
{
return std::tuple_size<T>::value;
}
int main()
{
std::array<int, 4> nums;
std::cout << "size(): " << nums.size() << "n";
std::cout << "max_size(): " << nums.max_size() << "n";
std::cout << "tuple_size: " << tuple_size(nums) << "n";
}
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 使用指针从C++中的数组中获取最大值
- 获取字符串的长度并将其分配给数组
- 数组长度,为什么从命令行获取时不能使用它?
- 如何在 nlohmann 的 json 库中获取数组长度?
- 在c++中获取两个大int,并将它们存储在数组中
- 如何在C++中获取二维数组中最少的一列数?
- 从 numpy 数组获取指针以将图像发送到C++
- 指针数组.获取指针元素的值
- 循环以使用 cstring 数组 c++ 获取用户输入
- 一种从元组/数组获取参数包的方法
- 如何使用数组获取输入,并将其存储在record.h类的主类中的变量中
- 如何使用数组获取命令行参数
- 从 JSON 数组获取天气
- 布尔数组获取意外的默认值
- 填充列表<>使用数组获取错误的数字
- 如何在C++中为矢量数据结构中的二维数组获取用户输入,而不使用行和列上的两个for循环
- 在自定义库中操作2d C++数组-获取行数
- 使用数组获取测试结果
- 数组c++获取值