Я вижу, что некоторые люди склонны инициализировать вектор пустым {}, и мне интересно, отличается ли он от прямой инициализации конструктором по умолчанию?
, например:
#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
}
и я проверяю его ассемблерный код, и он показывает, что инициализация вектора с пустым {} генерирует больше кода (https://godbolt.org/z/2BAWU_).
Снимок экрана с кодом ассемблера здесь
Я совершенно новичок в языке C ++, и я был бы признателен, если кто-нибудь может мне помочь.