在 C++ 中,创建特定大小的列表(其中列表的每个元素都是 3 个元素的列表)的推荐方法是什么?
Analogy
为了澄清这一点,Python 中我想要做的类比如下:
最简单:
n = 10
ls = [[0,0,0] for i in range(n)]
也已经初始化了and我可以访问元素(例如ls[0][0]
)甚至修改它们(ls[0][0]=2
), 完美的!
或使用 numpy
import numpy as np
n = 10 #number of elements
ls = np.empty((n,0)).tolist()
然后向每个元素(这里是一个列表)添加 3 个值。
基本尝试
现在我明白,在 C++ 中,一个开始的区别是专门定义内部列表应该包含的变量类型。但vector
不是c++中的变量类型吗?正如以下内容:
int n = 4;
vector<vector> ls(4);
for(int i=0; i<n; i++) {
ls[i] = {0,0,0};
}
会错的。此外,如果我尝试vector<int> ls;
那么我无法将列表分配给每个元素。
问题:
- 有没有办法让这项工作使用
vector
in C++?
- 或者,是否有更简单的方法来解决这个问题?
我能想到的最接近Python的代码是:
std::vector<std::vector<int>> ls(10, std::vector<int>(3));
如果大小在编译时已知,您也可以使用std::array
.
std::array<std::array<int, 3>, 10> ls;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)