Форум программистов, компьютерный форум CyberForum.ru

Вектор: merge, vector.swap - C++

Восстановить пароль Регистрация
 
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 268
09.04.2012, 20:50     Вектор: merge, vector.swap #1
Идея такая:
есть вектор 2 половину отсортированы
можно сделать inplace_merge, но
комбинация merge + выделение памяти под новый вектор работает быстрее, поэтому делаю так
C++
1
2
3
4
5
{
            vector<int> helper(v1.size());
            merge(v1.begin(),p1_ave,p1_ave,v1.end(),helper.begin());
            v1.swap(helper);                
        }
Вопрос по swap, что он именно делает?
что-то типо
C++
1
2
v1 = &helper;
helper = &v1;
(знаю, что так писать нельзя) только одновременно?
а как тогда будет работать v1 = helper?
присваивание будет по ссылке?

Добавлено через 1 минуту
Как лучше производить это действие, если старый вектор мне не нужен, а новый нужно записать в ту же переменную, где раньше было 2 отсортированные части.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 20:50     Вектор: merge, vector.swap
Посмотрите здесь:

C++ Создать производный класс ТРОИЧНЫЙ ВЕКТОР от класса Vector
C++ Создать класс Vector – вектор, используя динамическую память
Создать класс Vector – вектор, используя динамическую память C++
Создать класс Vector (вектор целых чисел) C++
Перегрузка функции(Создать класс Vector – вектор.) C++
Разработать класс Vector – геометрический вектор произвольной размерности C++
Создать класс вектор Vector (int *). Перегрузить операции: C++
C++ Vector::swap и std::move - что эффективнее?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru