我现在正在工作,vector
我有一个有趣的情况,我需要帮助.
我有一个矢量矢量,定义如下:
vector< vector<int> > list;
Run Code Online (Sandbox Code Playgroud)
我正在使用标准输入加载数字cin >> helpVar;
,每当我得到0(零)时我想创建新的整数向量,这将被放入这个"主容器" list
.
当然我不知道零号会出现多少次 - 这是用户所依赖的.所以我也不知道,程序会添加多少向量.
但我不知道,究竟是怎么做到的.如果我使用C#或其他类似垃圾收集的语言,我可能会写:
if(helpVar == 0)
{
list.push_back(new vector<int>);
}
Run Code Online (Sandbox Code Playgroud)
但是这种结构在C++中不起作用.
所以我的问题是,我应该如何应对这种情况才能使其发挥作用?或者我只是想错了,它应该以另一种方式完成?
谢谢你的回答.
list.push_back(vector<int>());
Run Code Online (Sandbox Code Playgroud)
vector<int>()
创建一个临时vector<int>
对象并初始化它(即,它调用该对象的默认构造函数). push_back
然后将该临时对象复制到list
.
在C#(和"其他垃圾收集语言")中,new
用于创建新对象,其生命周期由垃圾收集器控制.
在C++中,new
仅用于动态分配对象(并且您负责通过使用智能指针来管理其生命周期).语法T()
(其中T
是类型的名称)用于创建临时对象.
归档时间: |
|
查看次数: |
3434 次 |
最近记录: |