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

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

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

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

26.08.2013, 23:38. Просмотров 1099. Ответов 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;
}
Уважаемые форумчане как сделать?
помогите уважаемые форумчане)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2013, 23:38
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать из двух функций одну) (C++):

Сделать из двух строк одну, включающую их, как подпоследовательности - C++
Привет, задача заключается в том, что даётся две строки. Из них нужно сделать строку минимальной длины, которая будет включать данные, как...

из 4 функций сделать одну - C++
Помогите пожалуйста из 4 функций сортировки сделать одну, но чтобы работала на все :D Заранее благодарен. вот код: #include...

Как одну функцию использовать в двух проектах - C++
Есть функция которую нужно вызывать в двух проектах Я поместил ее в отдельный .cpp файл Проблема в том что в двух разных проектах...

Как вывести одну строку состоящую из двух строк ? - C++
как вывести на экран одну строку состоявшиеся из двух строк ? в с++

Как сделать из двух чисел третье, уникальное для любой комбинации первых двух? - C++
Hi :) Есть два числа, допустим: int a и int b, как можно их "сопряч", то есть что - то с ними сделать, что бы получить третье число,...

Как сделать ввод в одну строку? - C++
как сделать ввод в одну строку, через нажатие ентера и отступа на N расстояние, такого типа: scanf("%d.%d.%d", &Year, &Month, &Day); ...

26
iRomul
159 / 100 / 11
Регистрация: 17.10.2012
Сообщений: 480
Завершенные тесты: 1
27.08.2013, 01:36 #16
Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


_Да_Ладно_ ?

Не по теме:

_А_то_

0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
27.08.2013, 01:42  [ТС] #17
Conteiner = контейнерный
container = контейнер

хотите я так понял чтоб идеальная была функция) ща сделаю)

Добавлено через 55 секунд
C++
1
2
3
4
5
6
7
8
9
10
template<typename T>
void Resize_Array( unsigned int &_Old_Size_, unsigned int &_New_Size_, T *&_Contаiner_ )
{
    T *tmp = new T[_New_Size_];
    if ( _New_Size_ < _Old_Size_) 
         memcpy( tmp, _Contаiner_, _New_Size_ * sizeof( T ));
    else memcpy( tmp, _Contаiner_, _Old_Size_ * sizeof( T ));
    delete[]_Contаiner_;
    _Contаiner_ = tmp;
}
так идеально?))

Добавлено через 3 минуты
Научили английцкому) всем спасибо за выстрадание моей функции!!!
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
27.08.2013, 01:43 #18
Цитата Сообщение от Ko Посмотреть сообщение
так идеально?))
Идеально было бы std::vector использовать, хотя я конечно не знаю, что тебе нужно...

Не по теме:

Цитата Сообщение от Ko Посмотреть сообщение
Conteiner = контейнерный

0
iRomul
27.08.2013, 01:44
  #19

Не по теме:

Вот что гугл выдал:
Контейнерный класс. Контейнерная площадка. Контейнерный.
Container class. Container yard. Container.

Но это так, эстетика.

0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
27.08.2013, 01:46 #20
+ идентификаторы, начинающиеся с _U (вроде _Container_) зарезервированы для реализации стандартной библиотеки (т.е. теоретически могут быть проблемы); да и читаются не особо)
1
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
27.08.2013, 01:52  [ТС] #21
Вы чё хотите чтоб мне спалось плохо, типа мучался будут ли проблемы или нет?))) если компилиться то нормально) по ходу дела разберёмся будут проблемы или нет)
вектор не использую потому что для меня приоритет это скорость. вектор медленней работает, я его использую только когда составляю списки объектов.

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

Не по теме:

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

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

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

Не по теме:


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

да я знаю что там всё супер, и я это дело использую, но где нужна скорость я использую "голую" кучу))))))
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
27.08.2013, 02:01 #24
Цитата Сообщение от Ko Посмотреть сообщение
а я знаю что там всё супер, и я это дело использую, но где нужна скорость я использую "голую" кучу))))))
Ок, ну можно было бы хотя бы указатель + размер в структуре хранить...
1
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
27.08.2013, 02:08  [ТС] #25
Цитата Сообщение от gray_fox Посмотреть сообщение
Ок, ну можно было бы хотя бы указатель + размер в структуре хранить...
у меня специальный класс для этого сделан где там всё к этому делу прикручено, но именно доступ к куче представлен напрямую, потому что делал тест взял в класс кучу сунул и напрямую получилось по скорости доступа где то 53 секунды против 65 секунд. вот выбрал так что куча "лежит" наверху а класс управляет ей, по этому сделал функцию управления размером кучей, у меня их разных 5 куч и разные типы, по этому сделал данную функцию изменения размера, там если и unsigned int и int и bool и short))) в зависимости от данных) была кстати мысль сделать vector<bool> но отказался из-за того что доступ к значениям медленный сделал кучу) пожертвовал памятью
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 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);
}
1
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
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% упадёт при таких упаковках
0
27.08.2013, 18:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2013, 18:23
Привет! Вот еще темы с ответами:

Как сделать одну глобальную переменную - C++
Есть многофайловый проект. К примеру 5 файлов(5 &quot;H&quot; файлов+для них 5 &quot;срр&quot; файлов, пускай в каждом файле будет лежать класс) и есть...

Как сделать стабильный таймер в Windows XP,7,8 с задержкой в одну микросекунду? - C++
Собственно вопрос в топике, главное, чтоб таймер был стабилен и не скакал и чтоб задержка была в одну микросекунду. Тоесть возможно ли в...

Как сделать с использованием функций? - C++
#include &lt;iostream&gt; using namespace std; #include &lt;cmath&gt; int main() {

C++ (ооп) как из трех файлов (2 cpp и h) сделать одну программу? code blocks - C++
C++ (ооп) как из трех файлов (2 cpp и h) сделать одну программу? code blocks


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

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

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