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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 269
#1

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

09.04.2012, 20:50. Просмотров 644. Ответов 0
Метки нет (Все метки)

Идея такая:
есть вектор 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
Посмотрите здесь:

Vector::swap и std::move - что эффективнее? - C++
Пусть имеется пустой вектор A и заполненный некими данными вектор B. Тогда какой из методов более эффективный: A.swap(B); A =...

Добавление элементов в вектор. Тип vector - C++
Напишите программу, читающую строки из потока cin и сохраняющую их в векторе.

Вектор vector<string> переделать в int - C++
Здравствуйте. Подскажите, а то что то совсем запутался Задача следующая создать вектор string наполнить его элементами 123. С этим я...

Создать класс Vector (вектор целых чисел) - C++
Создать класс Vector (вектор целых чисел), переопределить для него операции: а) &quot;+=&quot; - сложение векторов с сохранением значения в одном...

Перегрузка функции(Создать класс Vector – вектор.) - C++
Создать класс Vector – вектор, используя динамическую память. Определить операторы &quot;+&quot; – поэлементное сложения векторов, &quot;-&quot; –...

Создать класс Vector – вектор, используя динамическую память - C++
Создать класс Vector – вектор, используя динамическую память. Определить операторы &quot;+&quot; – поэлементное сложения векторов, &quot;-&quot; – поэлементное...

Создать класс Vector – вектор, используя динамическую память - C++
Может кто подскажет листинг этой программы???

Разработать класс Vector – геометрический вектор произвольной размерности - C++
Разработать класс Vector – геометрический вектор произвольной размерности (размерность задается в конструкторе вектора). Реализовать метод...

Создать производный класс ТРОИЧНЫЙ ВЕКТОР от класса Vector - C++
Народ!!! Please help me! Задолбался уже!:wall: Вобщем такое задание: Создать производный класс ТРОИЧНЫЙ ВЕКТОР от класса Vector....

Как реализовать вектор, который будет принимать и хранить координаты вершин? (std::vector) - C++
Как реализовать вектор, который будет принимать и хранить координаты вершин, например? Хотелось бы как то так писать: ...

Vector<MyClass> MyVector или вектор типа MyClass - C++ - C++
Допустим у меня есть код ежедневника с классом Time, тут есть проверка времени, добавление элементов вектора в конец строки и небольшая...

Merge Sort - C++
написал реализацию Merge Sort но что то не так получилось))) помогите найти ошибку ) using namespace std; void Merge(int ,int ,int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru