О разных способах заполнения вектора

Я могу придумать три способа заполнения std :: vector

Предположим, у нас есть

vector v(100, 0);

Затем я хочу, чтобы он удерживал (1, 1, 1). Мы можем сделать:

v.clear();
v.resize(3, 1);

Или

v = vector(3, 1);

И я изучил другой подход:

vector(3, 1).swap(v); 

Первый вопрос: является ли какой-либо из них лучшим подходом?

Второй вопрос: предположим v был объявлен вне основной функции. Согласно этому ответу , память будет выделена в сегменте данных. Если я использую второй или третий подход, будет ли память выделяться в стеке?

5
задан Community 23 May 2017 в 12:11
поделиться