Почему std::copy завершается с ошибкой при успешном выполнении цикла? [дубликат] ⇐ C++
Почему 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
В чем разница между `std :: copy` и` std :: ranges :: copy`? [дублировать]
Anonymous » » в форуме C++ - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-