繁体   English   中英

你能用C ++匿名填充向量向量吗?

[英]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 ++指针的值为nullptr0 ,Java对象的默认值为null

编辑:Nico Schertler有一个有趣的解决方案你也应该看看。 我不打算将它们包含在我的答案中,以便他可以根据需要做出答案,但请看看他的评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM