2

可能重复:
C++ 对象实例化与赋值

我对 C++ 很陌生,想知道将对象实例化为

int main () {
  vector< int > x(2);
}

或者

int main () {    
  vector< int > x = vector< int > (2); 
}

除了后者需要更长的时间来写。提前致谢!

4

1 回答 1

7

区别主要在于语法:

  • vector<int> x(2);直接初始化

  • vector<int> x = vector<int>(2);拷贝初始化

后者正式要求该类具有可访问的副本构造函数,但实际上副本将被省略,并且两个版本产生完全相同的代码。

您应该始终喜欢直接初始化。

你也可以发疯:

  • vector<int> x = vector<int>(vector<int>(vector<int>(2)));
于 2012-08-17T10:32:10.873 回答