Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

09.04.2012, 20:50. Просмотров 677. Ответов 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 отсортированные части.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 20:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вектор: merge, vector.swap (C++):

Указатель на объект вектор в векторе vector < vector<int>* >* - C++
Дело касается вот чего, есть такая вот незатейлевая вещь. #include &lt;vector&gt; #include &lt;iostream&gt; int main( ) { using...

Записать числа из файла в двумерный массив или вектор вроде такого vector<vector<int>> - C++
Добрый день, подскажите пожалуйста как лучше и проще считывать файл. в файле записаны числа, разделенные пробелами и запятыми: 1, 2, 3,...

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

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

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

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2012, 20:50
Привет! Вот еще темы с ответами:

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

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

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

Создать класс вектор Vector (int *). Перегрузить операции: - C++
Создать класс вектор Vector (int *). Перегрузить операции: 1) ++ как унарный метод класса, возводящий элементы вектора в квадрат; 2) ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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