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

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

Войти
Регистрация
Восстановить пароль
 
 
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
#1

Как сделать из двух функций одну) - C++

26.08.2013, 23:38. Просмотров 992. Ответов 26
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Resize_Array_unsigned_int( unsigned int &_New_Size_, unsigned int *_Conteiner_ )
{
    unsigned int *tmp = new unsigned int[_New_Size_];
    memcpy( tmp, _Conteiner_, _New_Size_ * sizeof( unsigned int ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
 
void Resize_Array_bool(unsigned int &_New_Size_, bool *_Conteiner_)
{
    bool *tmp = new bool[_New_Size_];
    memcpy( tmp, _Conteiner_, _New_Size_ * sizeof( bool ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
Уважаемые форумчане как сделать?
помогите уважаемые форумчане)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2013, 23:38     Как сделать из двух функций одну)
Посмотрите здесь:

C++ Как сделать ввод в одну строку?
Как одну функцию использовать в двух проектах C++
C++ Как сделать с использованием функций?
Как сделать стабильный таймер в Windows XP,7,8 с задержкой в одну микросекунду? C++
C++ из 4 функций сделать одну
C++ (ооп) как из трех файлов (2 cpp и h) сделать одну программу? code blocks C++
C++ Как сделать чтобы при компиляции cin>>a>>b>>c; вводить можно было в одну строку?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
27.08.2013, 01:52  [ТС]     Как сделать из двух функций одну) #21
Вы чё хотите чтоб мне спалось плохо, типа мучался будут ли проблемы или нет?))) если компилиться то нормально) по ходу дела разберёмся будут проблемы или нет)
вектор не использую потому что для меня приоритет это скорость. вектор медленней работает, я его использую только когда составляю списки объектов.

Добавлено через 34 секунды
начал писать _Size_ с обоих сторон типа для входящих переменных.
gray_fox
27.08.2013, 01:55
  #22

Не по теме:

Цитата Сообщение от Ko Посмотреть сообщение
вектор медленней работает
)
вектор - это массив в куче + 3 указателя + уже написанный, отлаженный и задокументированный интерфейс\реализация. У тебя - массив в куче + указатель + размер... и всё)

Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
27.08.2013, 01:58  [ТС]     Как сделать из двух функций одну) #23
Представляете быстрей компилироваться стало) видимо компилятор читал и долго разбирался с моим _Conteiner_))) теперь когда пишу _Contаiner_ компилируется быстрей на 2 секунды))))) HO_HO_HO))))

Добавлено через 1 минуту
Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


)
вектор - это массив в куче + 3 указателя + уже написанный, отлаженный и задокументированный интерфейс\реализация. У тебя - массив в куче + указатель + размер... и всё)

да я знаю что там всё супер, и я это дело использую, но где нужна скорость я использую "голую" кучу))))))
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
27.08.2013, 02:01     Как сделать из двух функций одну) #24
Цитата Сообщение от Ko Посмотреть сообщение
а я знаю что там всё супер, и я это дело использую, но где нужна скорость я использую "голую" кучу))))))
Ок, ну можно было бы хотя бы указатель + размер в структуре хранить...
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
27.08.2013, 02:08  [ТС]     Как сделать из двух функций одну) #25
Цитата Сообщение от gray_fox Посмотреть сообщение
Ок, ну можно было бы хотя бы указатель + размер в структуре хранить...
у меня специальный класс для этого сделан где там всё к этому делу прикручено, но именно доступ к куче представлен напрямую, потому что делал тест взял в класс кучу сунул и напрямую получилось по скорости доступа где то 53 секунды против 65 секунд. вот выбрал так что куча "лежит" наверху а класс управляет ей, по этому сделал функцию управления размером кучей, у меня их разных 5 куч и разные типы, по этому сделал данную функцию изменения размера, там если и unsigned int и int и bool и short))) в зависимости от данных) была кстати мысль сделать vector<bool> но отказался из-за того что доступ к значениям медленный сделал кучу) пожертвовал памятью
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
27.08.2013, 02:31     Как сделать из двух функций одну) #26
Ko, ничего не понял, то, что я писал "про структуру", на скорость выполнения не должно никак повлиять (ну я не мерял ничего конечно, если интересно ). Просто это минимальное упрощение (a la С). Навроде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
typedef unsigned int size_t;
 
template<typename T>
struct Container {
 
   Container(T * const data, size_t const size) data(data), size(size) {}
 
   T *       data;
   size_t    size;
};
 
template<typename T>
Container<T> resize(Container<T> const container, size_t const size) {
   T * const data = new T[size];
   size_t const realSize = ((size < container.size) ? size : container.size);
   std::memcpy(data, container.data, realSize * sizeof (T));
   delete[] container.data;
   return Container<T>(data, size);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2013, 18:23     Как сделать из двух функций одну)
Еще ссылки по теме:

Программа не выполняет одну из функций C++
Как сделать из двух чисел третье, уникальное для любой комбинации первых двух? C++
Как сделать одну глобальную переменную C++
Сделать из двух строк одну, включающую их, как подпоследовательности C++
C++ Как вывести одну строку состоящую из двух строк ?

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

Или воспользуйтесь поиском по форуму:
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 246
27.08.2013, 18:23  [ТС]     Как сделать из двух функций одну) #27
Цитата Сообщение от gray_fox Посмотреть сообщение
Ko, ничего не понял, то, что я писал "про структуру", на скорость выполнения не должно никак повлиять (ну я не мерял ничего конечно, если интересно ). Просто это минимальное упрощение (a la С). Навроде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
typedef unsigned int size_t;
 
template<typename T>
struct Container {
 
   Container(T * const data, size_t const size) data(data), size(size) {}
 
   T *       data;
   size_t    size;
};
 
template<typename T>
Container<T> resize(Container<T> const container, size_t const size) {
   T * const data = new T[size];
   size_t const realSize = ((size < container.size) ? size : container.size);
   std::memcpy(data, container.data, realSize * sizeof (T));
   delete[] container.data;
   return Container<T>(data, size);
}
ну я про это и говорю что скорость на 10-15% упадёт при таких упаковках
Yandex
Объявления
27.08.2013, 18:23     Как сделать из двух функций одну)
Ответ Создать тему
Опции темы

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