[英]Can you populate a vector of vectors anonymously in C++?
在C ++中,我想制作一个包含整数的向量向量。 目前我必须做点什么
std::vector<std::vector<int>> vectors;
std::vector<int> v1;
std::vector<int> v2;
然后
vectors.push_back(v1);
vectors.push_back(v2);
在java中你可以跳过声明v1和v2,只是初始化包含其他向量的向量,然后创建一个循环或者其他东西
myArrayList.add(new ArrayList<int>());
你能用C ++做到吗? 如果是这样,怎么样? 谢谢
编辑:此外,当您添加匿名/未命名对象时,这是什么? 我使用术语“匿名”来指代未命名的向量,或者在java示例中使用未命名的新arraylist对象。 我确定它有一个术语,但我不知道它是什么,所以我无法在谷歌上搜索它。
你在谈论的是一个没有变量的Object在java中,我们使用new ArrayList<Integer>()
。 在C ++中,我们使用std::vector<int>()
。 这是有效的,因为在C ++中,理论上我们可以说
std::vector<int> my_vector = std::vector<int>();
上面的代码在功能上等同于std::vector<int>my_vector;
因为C ++会自动调用构造函数。 C ++之所以这样做,是因为与Java不同,C ++没有null
类型。
所以这变成了:
vectors.push_back(std::vector<int>());
PS。
Java对象= C ++指针。 C ++指针的值为nullptr
或0
,Java对象的默认值为null
。
编辑:Nico Schertler有一个有趣的解决方案你也应该看看。 我不打算将它们包含在我的答案中,以便他可以根据需要做出答案,但请看看他的评论。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.