Я не могу понять преимущества или различия между конструкторами векторной копии и конструкторами диапазонов. Когда я построить три вектора, как это:C++ 11 векторный конструктор копия vs range?
vector<int> FirstVec(3, 911); //fill constructor
vector<int> SecondVec(FirstVec.begin(), FirstVec.end()); //range constructor
vector<int> ThirdVec(FirstVec); //copy constructor
Содержимое SecondVec
и ThirdVec
точно так же. Существуют ли какие-либо сценарии, в которых использование одного из них имеет свои преимущества? Спасибо.
В случае, если 'FirstVec' фактически не является« std :: vector », а каким-то другим типом контейнера, например,« std :: list », конструктор на основе итератора абсолютно необходим. –
, когда необходимо скопировать поддиапазоны. – 911