Junior — Middle
Kann man die Funktion emplace_back bei std::vector ohne Argumente verwenden?
sobes.tech KI
Antwort von AI
Да, функцию emplace_back у std::vector можно вызвать без передачи аргументов, если тип элементов в векторе имеет конструктор по умолчанию. В этом случае будет создан новый элемент, инициализированный конструктором по умолчанию.
Пример:
#include <vector>
#include <iostream>
struct Point {
int x = 0, y = 0;
Point() = default; // конструктор по умолчанию
};
int main() {
std::vector<Point> points;
points.emplace_back(); // создаст Point с x=0, y=0
std::cout << points[0].x << ", " << points[0].y << std::endl; // Выведет: 0, 0
}
Если же у типа нет конструктора по умолчанию, то вызов emplace_back() без аргументов приведет к ошибке компиляции.