Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
1

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.08.2013, 23:38
Ответы с готовыми решениями:

Как сделать из двух таблиц одну?
Подскажите, пожалуйста как сделать из двух таблиц одну? Я в этом деле новичок, так что сильно не...

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

Как сделать linq выборку из двух таблиц в одну GridView?
Есть две таблицы которые имеют одинакоывый первичный ключ. Как мне сделать выборку из них...

Как сделать недоступным для пользователя одну из двух групп переключателей
Можно ли "засерить" - сделать недоступным для пользователя один из путей группы переключения в...

26
50 / 50 / 9
Регистрация: 18.07.2013
Сообщений: 138
Записей в блоге: 1
26.08.2013, 23:43 2
Цитата Сообщение от Ko Посмотреть сообщение
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;
}
Уважаемые форумчане как сделать?
помогите уважаемые форумчане)
просто одно название дай, будет перегруженной функция
1
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
26.08.2013, 23:44 3
хреновые функции. memcpy за границы будет вылезать.
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
26.08.2013, 23:49  [ТС] 4
Цитата Сообщение от Nekto Посмотреть сообщение
хреновые функции. memcpy за границы будет вылезать.
я согласен, старое название и новое будет 3 переменных на вход

Добавлено через 23 секунды
а как сделать так чтоб меньше было текста???

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Resize_Array_unsigned_int( unsigned int & _Old_Size_, unsigned int &_New_Size_, unsigned int *_Conteiner_ )
{
    unsigned int *tmp = new unsigned int[_New_Size_];
    memcpy( tmp, _Conteiner_, _Old_Size_ * sizeof( unsigned int ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
 
void Resize_Array_bool( unsigned int & _Old_Size_, unsigned int &_New_Size_, bool *_Conteiner_)
{
    bool *tmp = new bool[_New_Size_];
    memcpy( tmp, _Conteiner_, _Old_Size_ * sizeof( bool ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
0
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
26.08.2013, 23:54 5
Ko, шаблон ф-ии
C++
1
2
3
4
5
6
7
8
template<typename T>
void Resize_Array( unsigned int & _Old_Size_, unsigned int &_New_Size_, T *& _Conteiner_ )
{
    T *tmp = new T[_New_Size_];
    memcpy( tmp, _Conteiner_, _Old_Size_ * sizeof( T ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
как то так

Добавлено через 2 минуты
в логику не вникал если что
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
27.08.2013, 00:08  [ТС] 6
я попытался воспользоваться функцией выдала мне
>Global_variables.obj : error LNK2001: неразрешенный внешний символ ""void __cdecl Resize_Array<unsigned int>(unsigned int &,unsigned int &,unsigned int * &)" (??$Resize_Array@I@@YAXAEAI0AEAPEAI@Z)"
1
вот так запросил функцию
Resize_Array( Global_Conteiner_Size_Virtual_Time, Global_Conteiner_Size_Array_Virtual_Time, Global_Conteiner_Virtual_Time );

Добавлено через 7 минут
во внутрь)) класса вставил, всё скомпелировалось и заработало)

Добавлено через 17 секунд
всем спасибо ребята))) что хотел добился)
0
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
27.08.2013, 00:11 7
Ko, определние шаблона должно быть в заголовочном файле.

Добавлено через 47 секунд
Цитата Сообщение от Ko Посмотреть сообщение
во внутрь)) класса вставил, всё скомпелировалось и заработало)
ок )
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
27.08.2013, 00:19  [ТС] 8
cpp
C++
1
2
3
4
5
6
7
8
template<typename T>
void Resize_Array( unsigned int & _Old_Size_, unsigned int &_New_Size_, T *_Conteiner_ )
{
    unsigned int *tmp = new unsigned int[_New_Size_];
    memcpy( tmp, _Conteiner_, _Old_Size_ * sizeof( _Conteiner_ ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
и в h
C++
1
2
3
template<typename T>
 
void Resize_Array( unsigned int &, unsigned int &, T *);
так вот не пахало, может где я ошибся???
0
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
27.08.2013, 00:20 9
Ko,
Цитата Сообщение от gray_fox Посмотреть сообщение
определние шаблона должно быть в заголовочном файле.
т.е. всё в .h
C++
1
2
3
4
template<typename T> 
void Resize_Array( unsigned int & _Old_Size_, unsigned int &_New_Size_, T *_Conteiner_ ) {
   // ...
}
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
27.08.2013, 00:44  [ТС] 10
надо докапаться и разобраться)

Добавлено через 14 секунд
аааааааааааа

Добавлено через 8 секунд
ааааа

Добавлено через 8 секунд
))))))

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

Добавлено через 12 минут
проверил берёт ссылку((((

Добавлено через 50 секунд
может 4 переменную завести в функции??? типа какой размер? или узнать внутри функции как то?

Добавлено через 3 минуты
сплю видимо) надо Т поставлять!!!

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
template<typename T>
void Resize_Array( unsigned int & _Old_Size_, unsigned int &_New_Size_, T *_Conteiner_ )
{
    T *tmp = new T[_New_Size_];
    memcpy( tmp, _Conteiner_, _Old_Size_ * sizeof( T ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
во так всё правильно, всё пашет и правильно размер подставляется, всём спасибо особенно gray_fox!!!
0
347 / 292 / 37
Регистрация: 23.03.2012
Сообщений: 838
27.08.2013, 00:51 11
Цитата Сообщение от Ko Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
template<typename T>
void Resize_Array( unsigned int & _Old_Size_, unsigned int &_New_Size_, T *_Conteiner_ )
{
    T *tmp = new T[_New_Size_];
    memcpy( tmp, _Conteiner_, _Old_Size_ * sizeof( T ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
во так всё правильно, всё пашет и правильно размер подставляется, всём спасибо особенно gray_fox!!!
А если нью сайз меньше олд сайза, то опять за границы полезет.
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
27.08.2013, 01:29  [ТС] 12
Цитата Сообщение от Nekto Посмотреть сообщение
А если нью сайз меньше олд сайза, то опять за границы полезет.
Такое не может быть))) у меня) постоянно идёт увеличение массива, может быть или более или равно

Добавлено через 1 минуту
но сделаю условие если что приравнивание) чтоб больше чем надо не скачало а то в друг))

Добавлено через 18 секунд
всякое бывает))))))

Добавлено через 7 минут
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 *&_Conteiner_ )
{
    T *tmp = new T[_New_Size_];
    if ( _New_Size_ < _Old_Size_) 
         memcpy( tmp, _Conteiner_, _New_Size_ * sizeof( T ));
    else memcpy( tmp, _Conteiner_, _Old_Size_ * sizeof( T ));
    delete[]_Conteiner_;
    _Conteiner_ = tmp;
}
во теперь красота вот так выглядит эта))
кстати была 1 грубейшая ошибка в виде T *_Conteiner_ а надо T *&_Conteiner_ фиг знает чё удалялось)))
и не большой недочёт в виде размера, сделал через условие чтоб внешнюю переменную не портить)
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
27.08.2013, 01:30 13
Цитата Сообщение от Ko Посмотреть сообщение
Conteiner
container
0
gray_fox
27.08.2013, 01:32
  #14

Не по теме:

Цитата Сообщение от iRomul Посмотреть сообщение
container
_Да_Ладно_ ? :D

0
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
27.08.2013, 01:35  [ТС] 15
Вы чё ребята)))
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
27.08.2013, 01:36 16
Цитата Сообщение от gray_fox Посмотреть сообщение

Не по теме:


_Да_Ладно_ ? :D

Не по теме:

_А_то_

0
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 282
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
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
27.08.2013, 01:43 18
Цитата Сообщение от Ko Посмотреть сообщение
так идеально?))
Идеально было бы std::vector использовать, хотя я конечно не знаю, что тебе нужно...

Не по теме:

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

0
iRomul
27.08.2013, 01:44
  #19

Не по теме:

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

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

0
What a waste!
1607 / 1299 / 180
Регистрация: 21.04.2012
Сообщений: 2,729
27.08.2013, 01:46 20
+ идентификаторы, начинающиеся с _U (вроде _Container_) зарезервированы для реализации стандартной библиотеки (т.е. теоретически могут быть проблемы); да и читаются не особо)
1
27.08.2013, 01:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2013, 01:46
Помогаю со студенческими работами здесь

Как сделать одновременное вычисления двух функций
Здравствуйте. Подскажите пожалуйста. Есть две функции FunctionOne() и FunctionTwo(). Идут одна...

Как сделать так, чтобы в одну GridView передавались результаты двух запросов
Здравствуйте. Как сделать так чтобы в одну ГридВью передавались результаты двух запросов? Спасибо

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

сделать из двух матриц одну
не получается почемуто у меня слепить 2 матрицы в одну. Помогите пожалуйста. Оригинал кода внизу...

Из двух программ сделать одну
У меня есть две программы, одна решает квадратные уравнения, а другая неравенства. Мне нужно что б...

Из двух строк сделать одну, в которой поочередно будут символы двух строк
Из двух строк сделать одну, в котором поочередно будут символы двух строк.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru