Back to questions
Junior — Middle
86
Можно ли использовать функцию emplace_back у std::vector без передачи аргументов?
Companies where asked
Телкор
Answer from AI
sobes.tech 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() без аргументов приведет к ошибке компиляции.