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

inplace_merge - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Получить доступ к памяти http://www.cyberforum.ru/cpp-beginners/thread528537.html
struct df{ unsigned f1: 1; unsigned f2: 1; unsigned f3: 6; }; df gh; df* pointer=(df*)0x50000000; int _tmain(int argc, _TCHAR* argv)
C++ сортировка и связь массивов доброго времени суток. проблема следующая: есть массив, скажем array1 = {1.3,0.5,5.7,0.9}; нужно создать еще один массив в котором по умолчанию стоят ранги первого массива array2= {1,2,3,4};. но массив array1 не упорядочен, и вот если его упорядочить т.е. array1 = {0.5,0.9,1.3,5.7}; то и второй массив изменится т.е. array2= {2,4,1,3}; как это сделать, все что я пробовал не... http://www.cyberforum.ru/cpp-beginners/thread528531.html
Поменять местами элементы матрицы, расположенные в верхней и нижней четвертях C++
В квадратной матрице поменять местами элементы, расположенные в верхней и нижней четвертях, ограниченных главной и побочной диагоналями (за исключением элементов этих диагоналей). Помогите пожалуйста решить задачу!
C++ Дан текст состоящий из нескольких предложений...
Помогите решить задачу. Нужно на Си. Дан текст, состоящий из нескольких предложений. Предложения оканчиваются точкой, восклицательным или вопросительным знаками. Определить количество слов в каждом предложении. Преобразовать текст, удалив из каждого предложения последнее слово вместе с разделителями, которые его окружают (если они есть), оставив знак препинания, завершающий предложение. Если...
C++ Перевод чисел из системы остаточных классов в десятичную систему счисления http://www.cyberforum.ru/cpp-beginners/thread528508.html
Братья, нужна помощь по переводу чисел из системы остаточных классов в десятичную систему счисления. Я пробовал писать, но у меня только в диапазоне 3*5*7 работает, и то 104 и 103 он переводит неверно... помогите плиз! Если кому будет интересно, могу скинуть свой вариант написания, но он в методе класса находится... большой HELP, браты:) Добавлено через 2 часа 13 минут Люди, большое спасибо,...
C++ Сформировать массив из матрицы Дана матрица А(6,7). Сформировать массив В(6), каждый элемент которого есть произведение положительных элементов соответствующего столбца матрицы А. Дана матрица А(6,7). Сформировать массив В(6), каждый элемент которого есть сумма отрицательных элементов соответствующего столбца матрицы А. Дана квадратная матрица А(6,6). Подсчитать сумму элементов, лежащих выше главной диагонали. подробнее

Показать сообщение отдельно
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 268
27.03.2012, 15:07     inplace_merge
Здравствуйте. Нужна оч эффективный аналог это фунции...попытался придумать алгоритм, по которому она работает...получается слишком много проверок, копирований и т.д....
решил, что обычное копирование будет работать быстрее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
vector<int> my_inplace_merge(vector<int>::iterator midl, vector<int> &vec)
{
    vector<int> help;
    auto it1 = vec.begin();
    auto it2 = midl;
    auto e = vec.end();
    while ((it1 != midl) && (it2 != e))
        if(*it1 < *it2)
        {
            help.push_back(*it1);
            ++it1;
        }
        else
        {
            help.push_back(*it2);
            ++it2;
        }
 
    if (it1 == midl)
        while (it2 != e)
        {
            help.push_back(*it2);
            ++it2;
        }
    else
        if (it2 == e)
            while (it1 != midl)
            {
                help.push_back(*it1);
                ++it1;
            }
 
    return help;
}
ещё вопросик, что происходит со старым вектором, если происходи вызов
C++
1
b1 = my_inplace_merge(p1_ave, b1);
Деструктор вызывается, память освобождается?

так вот....такая функция работает медленней стандартной....
есть мысли по поводу улучшенного алгоритма стандартной?

Добавлено через 3 часа 28 минут
ау?)_

Добавлено через 16 часов 40 минут
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru