1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 18
1

Шаблонные функции

22.02.2010, 17:55. Показов 1190. Ответов 8
Метки нет (Все метки)

Помогите, пожалуйста, реализовать шаблонную функцию, которая переставляет элементы в массиве
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2010, 17:55
Ответы с готовыми решениями:

Шаблонные функции
С помощью http://ru.wikipedia.org/wiki/Шаблоны_C%2B%2B пытался написать программу с шаблонной...

Шаблонные функции в C++
Каждый раз когда вижу код, который должен быть простым и понятным, я понимаю его немного хуже. Вот...

Шаблонные функции
Здравствуйте! Помогите сделать в данном коде 2 задания: 1)Сделать тип элемента заданной структуры...

Шаблонные функции
Чет не получается написать шаблонную функцию. func.h template <class T> T strnstr (T str, T...

8
Maniac
Эксперт С++
1463 / 964 / 160
Регистрация: 02.01.2009
Сообщений: 2,818
Записей в блоге: 1
22.02.2010, 18:06 2
Цитата Сообщение от Maxvarlamov Посмотреть сообщение
Помогите, пожалуйста, реализовать шаблонную функцию, которая переставляет элементы в массиве
В смысле переставляет.. то есть как?
0
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 18
22.02.2010, 18:08  [ТС] 3
переставляет --- меняет местами элементы
0
4333 / 1502 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
22.02.2010, 18:11 4
C++
1
2
3
4
5
template<class T> 
void Swap(T &a, T &b)
{
    a ^= b ^= a ^= b;
}
0
Maniac
Эксперт С++
1463 / 964 / 160
Регистрация: 02.01.2009
Сообщений: 2,818
Записей в блоге: 1
22.02.2010, 18:17 5
Тоесть два элемента?..
Если да то вот..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
template <typename T>
void swap(T &a, T &b){
    T buff = a;
    a = b;
    b = buff;
}
int main(){
 
    int a = 10, b = 20;
    float f1 = 1112.2, f2 = 3333.33;
 
    swap(a, b);
    std::cout << a << '\n' << b << '\n';
 
    swap(f1, f2);
    std::cout << f1 << '\n' << f2 << '\n';
 
    return 0;
}
Добавлено через 2 минуты
HIMen, Не везде прокатит...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template<class T> 
void Swap(T &a, T &b)
{
    a ^= b ^= a ^= b;
}
 
int main(){
 
    std::string s1 = "aaaa", s2 = "bbbbb";
 
    Swap(s1, s2); // ошибка будет...
 
    return 0;
}
1
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 18
22.02.2010, 18:36  [ТС] 6
Переставляет это значит a0=a4,a1=a3,a2=a2,a3=a1,a4=a0
0
Maniac
Эксперт С++
1463 / 964 / 160
Регистрация: 02.01.2009
Сообщений: 2,818
Записей в блоге: 1
22.02.2010, 18:49 7
Переставляет это значит a0=a4,a1=a3,a2=a2,a3=a1,a4=a0
Раньше не мог сказать?
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
#include <iostream>
 
template <typename It>
void swap(It &_first, It &_last){
    It buff = _first;
    _first  = _last;
    _last   = buff; 
}
template <typename It>
void rotate_arr(It _first, It _last){
    for (; _first != _last && _first != --_last; ++_first)
        swap(*_first, *_last);
}
 
 
int main(){
 
    int arr[5] = {1,2,3,4,5};
    rotate_arr(arr, arr + 5);
 
    for(int i = 0; i < 5; ++i) std::cout << arr[i] << ' ';
 
    return 0;
}
1
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 18
22.02.2010, 19:18  [ТС] 8
А как сделать так, чтобы можно было вводить и целые, и вещественные (double) значения
0
Автор FAQ
3685 / 962 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
22.02.2010, 19:49 9
А как сделать так, чтобы можно было вводить и целые, и вещественные (double) значения
Вводить можно что угодно - а вот храниться должно все в одном массиве. Т.к. int не может хранить значения после запатой заводите массив double - те числа которые вы введете целочисленными просто будут иметь нули после запятой.

C++
1
2
3
4
5
6
7
#define N 7
int main(){
    double x[N];
    for (int i = 0; i < N; i++)
        cin >> x[i];
return 0;
}
Если хочется чтобы числа содержащие только целую часть выводились без "хвоста" можно делать проверку на целочисленность и если она пройдена
C++
1
int temp = x[i]; cout << temp;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.02.2010, 19:49
Помогаю со студенческими работами здесь

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

Шаблонные функции
Читал у Праты про шаблонные функции, и везде они описаны наподобие template &lt;typename Any&gt; void...

Шаблонные функции
1) Написать шаблонную функцию для нахождения минимального из трех передаваемых чисел (для чисел...

Шаблонные функции
Доброго времени суток. Есть шаблонная функция(двоичный сумматор прямого кода): template &lt;class T&gt;...


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

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

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