关于容器vector的复制构造函数问题。
C++ Primer上的一个课后题,P408,P13.2
vector可以直接初始化:
1。vector<int> v1(42);
而不能使用
2。vector<int> v2 = 42; 这个可以从vector的定义得出什么推断?
答案给的是vector类没有提供公有的复制构造函数。第二个初始化是复制初始化,创建v2时,编译器首先调用接受一个int形参的vector构造函数,创建一个临时vector对象,然后编译器需要使用vector复制构造函数将v2初始化为该临时vector对象的副本。
我的问题是 在第一个里面也还不是先用42创建一个临时对象,再调用复制构造函数,初始化v1嘛?那为什么第二个不行?
我是菜鸟,问的问题非常入门级别,大家不要大笑,但还是可以小笑哈!
谢谢,帮忙看的,帮忙回答的。
Good Luck!