【发布时间】:2011-01-27 04:35:41
【问题描述】:
这看起来很简单,但我很困惑:我创建一百个向量的方式,比如说,ints 是
std::vector<int> *pVect = new std::vector<int>(100);
但是,查看 std::vector 的 documentation 我发现它的构造函数是这样的
explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() );
那么,前一个是如何工作的? new 是否使用从默认构造函数获得的初始化值调用构造函数?如果是这样的话,会
std::vector<int, my_allocator> *pVect = new std::vector<int>(100, my_allocator);
我在哪里传递我自己的分配器,也可以吗?
【问题讨论】:
-
另外,如果您能推荐一个涵盖
new和ctors 的这些方面的在线资源,那就太好了。谢谢。 -
抱歉,我不知道
new与您的问题有什么关系。 -
基本上,我想知道的是:
new不只是打电话给 ctor 吗?但在这种情况下,这种形式没有 ctor。 -
你为什么要创建临时文件?为什么不直接说 std::vector
v(100); -
抱歉,我在我的问题中遗漏了
news,经过编辑以将它们放入。@Neil,在你的情况下,不是只用一个参数调用 ctor,100?但是没有那种确切形式的向量 ctor,所以我想知道初始化值是否是从默认 ctor 在幕后获得的。