Код: Выделить всё
struct A {
int a;
int b;
};
< /code>
можно сделать: < /p>
std:vector vec;
vec.push_back(A{ .a = 4, .b = 2 });
< /code>
Но я думаю, что это в конечном итоге создает копию. Использование emplace_back
Код: Выделить всё
A(int a, int b)
: a(a)
, b(b)
{}
< /code>
, а затем сделать < /p>
vec.emplace_back(4, 2);
< /code>
Но добавление, которое утратит использование списка инициализаторов. А еще лучше, есть ли способ использовать список инициализаторов во время построения на месте? < /P>
Решение будет < /p>
vec.emplace_back();
vec.back().a = 4;
vec.back().b = 2;
Подробнее здесь: https://stackoverflow.com/questions/796 ... nstruction