Я хотел бы знать, есть ли какая-либо разница в следующих двух типах инициализации std::vector
в C ++ 11 и более поздних версиях.
std::vector<int> v1 {1, 2, 3, 4, 5};
std::vector<int> v2 = {1, 2, 3, 4, 5};
Вот полный пример кода, который отлично работает.
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v1 {1, 2, 3, 4, 5};
std::vector<int> v2 = {1, 2, 3, 4, 5};
std::cout << v1.size() << '\n';
std::cout << v2.size() << '\n';
}
Я вижу, как обе инициализации приводят к одинаковым результатам.
В примере на http://en.cppreference.com/w/cpp/container/vector используется второй вид, так что я подумал, имеет ли этот тип инициализации какое-либо преимущество.
В общем, я хочу знать, имеет ли одна инициализация конкретное техническое преимущество перед другой, или считается, что одна инициализация считается оптимальной, а другая - нет, и если да, то почему.
Особенно меня беспокоит то, имеет ли инициализация копирования списка дополнительные издержки из-за временных объектов и копирования?