Разница между следующими? Какой из них имеет неопределенное поведение? И то и другое?Разница между copy_n и копией
std::copy_n(asdf.begin(), asdf.size(), asdf.begin());
std::copy(asdf.begin(), asdf.end(), asdf.begin());
Предположим, std::vector<int>
дано функции. И эти две функции не такие, как говорят некоторые люди.
Это дефект в стандарте?
Оба они могут иметь неопределенное поведение. Один экземпляр по количеству, другой по диапазону. –
Какое из перечисленных выше имеет неопределенное поведение? Не только функции. – user4634678
Если вы указали размер, превышающий размер вашей памяти, 'copy_n' будет иметь неопределенное поведение. Если итераторы 'end()' или 'begin()' 'в' copy' находятся вне границ, вы будете иметь неопределенное поведение. Это и то, и другое, в зависимости от значений, предоставляемых функциям. –