【发布时间】:2020-09-18 19:51:46
【问题描述】:
上下文
我正在尝试为int 找到最佳的一维存储类型。我计划将 Eigen::Vector 对象用作“索引容器”(即存储代表较大向量索引的 int 值),然后稍后对这些“索引容器”进行一些自定义验证。虽然我可以从这个“索引容器”中删除值,但我永远不会向它添加新值:所以size 将永远是 n
但是我注意到有几个不同的Eigen::Vector typedefs,文档没有说明它们的区别。我可以从 typedef 的签名中得到一个想法,但很大程度上仍然不确定哪个是合适的。
Eigen::VectorEigen::VectorXEigen::VectorXi
有人可以解释一下这些 typedef 的主要区别吗,我有一些想法,例如VectorXi 的“i”代表int。
编辑
已经请求了我所说的“索引容器”的示例:
假设我有一个布尔向量,其值为 {true, false, true, true, false}
据此,我的索引容器将具有值 {0, 2, 3}
这个问题的重点是找出索引容器的最佳特征对象类型
编辑 2
不相关,但为什么是索引容器? 我需要执行多个直接基于索引值的不同验证规则。
例如 验证 1:如果 cont2 中的任何值小于 cont1[0],则删除它们
cont1 cont2
-- --
0, 2,
5, 3,
10, 8,
13 12,
for (i = 0; i <= cont2.size(); i++)
if cont2[i] <= cont1[0]:
cont2.remove(i)
else:
break
【问题讨论】:
标签: arrays vector indexing eigen