我对C ++很陌生,想知道实例化对象之间有什么区别(如果有的话)
int main () {
vector< int > x(2);
}
或
int main () {
vector< int > x = vector< int > (2);
}
除了后者需要更长时间才能写入。提前谢谢!
答案 0 :(得分:7)
差异很大程度上是语法上的:
vector<int> x(2);
直接初始化。
vector<int> x = vector<int>(2);
是复制初始化。
后者正式要求该类具有可访问的拷贝构造函数,但实际上该拷贝将被省略,并且这两个版本产生完全相同的代码。
你应该总是喜欢直接初始化。
你也可以疯了:
vector<int> x = vector<int>(vector<int>(vector<int>(2)));