小编Vin*_*Lim的帖子

使用空的 {} 来初始化向量有什么不同?

我看到有些人倾向于使用空的 {} 来初始化向量,我想知道这与直接使用默认构造函数初始化是否有不同?

例如:

#include <vector>
#include <iostream>
using namespace std;

int main()
{
    vector<int> vec;
    vector<int> vec2 {};

    cout << sizeof(vec) << " " << sizeof(vec2) << endl; // 24 24
    cout << vec.size() << " " << vec2.size() << endl;   // 0 0 
}
Run Code Online (Sandbox Code Playgroud)

我检查了它的汇编代码,它表明使用空的 {} 初始化向量会生成更多代码(https://godbolt.org/z/2BAWU_)。

汇编代码屏幕截图在这里

我对 C++ 语言很陌生,如果有人能帮助我,我将不胜感激。

c++ stl

3
推荐指数
1
解决办法
629
查看次数

标签 统计

c++ ×1

stl ×1