эта проблема смущала меня много часов,
Помогите мне, пожалуйста!
первый раз, когда я вызываю set_union, результат правильный, но во второй раз я вызываю его, результат неправильный, см. код:
std::vector<int> set1{ 1, 2, 3, 4, 5, 6 };
std::vector<int> set2{ 4, 5, 6, 7, 8 };
std::vector<int> result{};
std::set_union(std::begin(set1), std::end(set1),
std::begin(result), std::end(result),
std::back_inserter(result));
// result is 1 2 3 4 5 6
std::back_insert_iterator< std::vector<int>> back2 =
std::set_union(std::begin(set2), std::end(set2),
std::begin(result), std::end(result),
std::back_inserter(result));
Я отлаживаю приведенный выше код, получаю такой результат:
[0] 1 int
[1] 2 int
[2] 3 int
[3] 4 int
[4] 5 int
[5] 6 int
[6] 1 int
[7] - 572662307 int
[8] - 572662307 int
[9] - 572662307 int
[10] - 572662307 int
[11] - 572662307 int
[12] 4 int
[13] 5 int
[14] 6 int
[15] 7 int
[16] 8 int