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

C++,шаблон,специализация,поиск самой большой строки в массиве указателей на char - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать динамический массив указаний для сохранения двумерного массива А в динамической памяти. http://www.cyberforum.ru/cpp-beginners/thread147302.html
Создать динамический массив указаний для сохранения двумерного массива А в динамической памяти. Составить программу для подсчета произведения элементов в двумерной таблице А размеру m*n., какие удовлетворяют условию-3<aig<=3, подсчет произведения организовать в отдельной функции.
C++ .hpp Парни помогите мне. Я чайник( что означает расширение .hpp в модулях, которые указаны ниже. #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ADODB.hpp> #include <DB.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> http://www.cyberforum.ru/cpp-beginners/thread147295.html
C++ Все отрицательные элементы заменить на квадраты элементов
Все отрицательные элементы заменить на квадраты этих элементов, а не отрицательные на половину суммы квадратов соседних элементов. Помогите плиз, заранее спасибо)
Вычислить количество отрицательных элементов в каждом столбце матрицы и сформировать из них новый массив C++
Помогите девушке решить индивидуальные задачи по С++ ........help me please!!!! 2. Массив матрица A(N,M). Вычислить количество отрицательных элементов в каждом столбце матрицы и сформировать из них новый массив. Условия и Ограничения: -6 (меньше либо равно) A(N,M) (меньше либо равно) 6
C++ Массивы http://www.cyberforum.ru/cpp-beginners/thread147256.html
В общем надо написать программу: Найти минимум, заменить все числа, модуль которых больше минимума нулями, подсчитать количество замен. Заранее спасибо)
C++ Вывести числа в обратном порядке и определить сумму чисел Здравствуйте, помогите пожалуста написать программу: Пользователь вводит 25 чисел с плавающей точкой. Вывести числа в обратном порядке и определить сумму чисел. подробнее

Показать сообщение отдельно
USHЁL
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 93
19.06.2010, 12:33  [ТС]     C++,шаблон,специализация,поиск самой большой строки в массиве указателей на char
Я сделал,но комп-р ругается(на строчке прототипирования специализации и выдаёт сообщение типа:template-id`maxn<>'for`const char* maxn(const char**,int)'does not match any template declaration) =) Использую wxDev-C++
Или не нужно определение шаблона?Што то я немного не пойму?(Сама задача:Создайте шаблон функции maxn(),которая принимает в качестве аргумента массив элементов типа T и целое число,представляющее собой кол-во элементов в массиве,а возвращает элемент с наибольшим значением.Протестируйте её работу в программе,которая использует шаблон данной функции с массивом из 6 значений типа int и массивом из 4 значений типа double.Программа также должна включать специализацию,которая использует в качестве аргумента массив указателей на char и кол-во указателей в качестве второго аргумента,а затем возвращает адрес самой длинной строки.Если имеется более одной строки наибольшей длины,функция возвращает адрес первой из них.Выполнить проверку специализации на примере массива,состоящего из 5-и указателей на строки.)

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <cstdlib>
#include <iostream>
template <typename T>//shablon
void maxn(T arr[],int cz);
template <>
const char * maxn(const char * cArr[],int p);//spezializacia
using namespace std;
int main(int argc, char *argv[])
{
    int mass1[6] = {5,90,3,2,9,7};
    maxn(mass1,6);
    double mass2[4] = {4.8,8.0,5.3,3.14};
    maxn(mass2,4);
    cout<<"rabotaet cArr[5]!"<<endl;
    const char * mchar[9] = {
                       "Dasha",
                       "InokentyW",
                       "Jora",
                       "Tanyasdw",
                       "IrinaW"
                      };
                             
    cout<<maxn(mchar,5);
    system("PAUSE");
    return EXIT_SUCCESS;
}
///
template <typename T>
void maxn(T arr[],int cz)
{ 
    double maxx = arr[0];
    for(int i = 1;i<cz;i++)
    {
        if(arr[i] > maxx)
         maxx = arr[i];
    }
    cout<<"bolshee chislo:"<<maxx<<endl;
}
///
template <> const char * maxn(const char * cArr,int p)
{  
     char *buff = cArr;
        for(int i = 1; i < p; ++i)
          {
            if(strlen(buff) < strlen(cArr[i]))
            buff = cArr[i];   
          }   
    return buff;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru