Почему std::copy завершается с ошибкой при успешном выполнении цикла? [дубликат] ⇐ C++
-
Anonymous
Почему std::copy завершается с ошибкой при успешном выполнении цикла? [дубликат]
Я получаю ошибку сегментации, когда использую std::copy, но при использовании цикла код работает. Я знаю, что Insert Begin() + 2 вставляет элемент после второго элемента, поэтому кажется, что моя логика начала и конца верна. Я не могу понять, что не так. Я заметил, что если я напишу test.back().reserve(4096); непосредственно перед копированием, все будет в порядке, требует ли копирование заранее зарезервировать размер? Разве это не чрезвычайная вероятность ошибок? Что здесь не так?
bool errorVersion = 0; //clang++ -std=c++20 -fsanitize=undefined,memory -march=native -Wall -Wextra -g main.cpp && ./a.out #include #include использование пространства имен std; int main(int argc, char *argv[]) { вектор тест; test.push_back({}); for(int i=0; i
Я получаю ошибку сегментации, когда использую std::copy, но при использовании цикла код работает. Я знаю, что Insert Begin() + 2 вставляет элемент после второго элемента, поэтому кажется, что моя логика начала и конца верна. Я не могу понять, что не так. Я заметил, что если я напишу test.back().reserve(4096); непосредственно перед копированием, все будет в порядке, требует ли копирование заранее зарезервировать размер? Разве это не чрезвычайная вероятность ошибок? Что здесь не так?
bool errorVersion = 0; //clang++ -std=c++20 -fsanitize=undefined,memory -march=native -Wall -Wextra -g main.cpp && ./a.out #include #include использование пространства имен std; int main(int argc, char *argv[]) { вектор тест; test.push_back({}); for(int i=0; i
Мобильная версия