Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 艾根::矩阵|为什么艾根期望整数而不是大小|?_C++_Size_Eigen - Fatal编程技术网

C++ 艾根::矩阵|为什么艾根期望整数而不是大小|?

C++ 艾根::矩阵|为什么艾根期望整数而不是大小|?,c++,size,eigen,C++,Size,Eigen,根据,与行数和列数相对应的第二个和第三个模板参数应为int 我想知道为什么这些参数不是size\t?唯一的理由是,当eigen允许行数或列数为负数时,有int 这之所以有意义,是因为Eigen::Dynamic。有人能确认这是允许行/列为负值的原因吗?本征::动态根本不是原因,因为它可以等于例如数值限制::max(),或相同的大小(-1) 我认为这是因为Egen的目标受众比其他任何东西都更喜欢使用int。 然后,如果您对这个选择不满意,您可以使用EIGEN\u DEFAULT\u densite

根据,与行数和列数相对应的第二个和第三个模板参数应为
int

我想知道为什么这些参数不是
size\t
?唯一的理由是,当eigen允许行数或列数为负数时,有
int


这之所以有意义,是因为
Eigen::Dynamic
。有人能确认这是允许行/列为负值的原因吗?

本征::动态根本不是原因,因为它可以等于例如
数值限制::max()
,或相同的
大小(-1)

我认为这是因为Egen的目标受众比其他任何东西都更喜欢使用int。 然后,如果您对这个选择不满意,您可以使用
EIGEN\u DEFAULT\u densite\u INDEX\u TYPE
预处理器指令设置为您认为合适的值,并面对后果……)
不,说真的,在实际使用之前,我至少会运行完整的特征测试集。

也许,也许不会-也许你应该问问库作者。我会说它们是
int
,因为
Eigen::Dynamic
是一个
int
的负值,在库中有特殊意义。但是,这并不能真正解释如何选择
int
,他们可以很容易地将它设置为
ssize\t
,这是
size\t
的有符号版本。对于大型矩阵,使用动态矩阵比使用大型固定大小更好。不推荐使用无符号类型,而不使用位字段或BigNIM。@ FielPeGon阿尔维斯(代码)> SsiZeZt不是C++的一部分,而是POSIX,IRC,范围为[-1…2×10 ^ 15 ]或其他。由于Eigen是跨平台的,所以它没有这个选项。@Marc Glisse,这不是谁推荐的?对C++标准库容器的随机访问是由SiZeZT索引生成的,并且它们的大小被作为sieZHT返回。这基本上使程序与Eigen(C++的代码)(除了玩具示例)进行接口,非常警告发出或充满铸件。@斯拉瓦