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

Вопрос по шаблону - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ "Портирование" кода http://www.cyberforum.ru/cpp-beginners/thread253039.html
Здравствуйте! Существует отлаженый алгоритм (цифровая фильтрация и БПФ) и рабочая программа на С. Программа функционирует по Виндовс на обычном десктопе. так вот стоит проблема "портирования" этой программы на микроконтроллер с фиксированой точкой. Иными словами нужно перевести все float в программе в int (в крайнем случае long). Какие могут быть общие рекомендации для таких задач?...
C++ Как это понимать? Файл ExN02DetectorMessenger.hh #ifndef ExN02DetectorMessenger_h #define ExN02DetectorMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" class ExN02DetectorConstruction; http://www.cyberforum.ru/cpp-beginners/thread253036.html
Шаблоны C++
Так делать типо нельзя ? template<class T, int maxPrint = 10> void PrintAll(std::vector<T>& forPrint) { for(std::vector<T>::iterator i = forPrint.begin(); i != forPrint.end() && 1 < maxPrint; i++) { std::cout << *i << std::endl;
C++ округление числа до десятых
Как округлить число до целого я знаю, s=(s-floor(s)<0.5)?floor(s):ceil(v) а как округлить, скажем, число 3.4643 до 3.5 ?
C++ В чем ошибка http://www.cyberforum.ru/cpp-beginners/thread253014.html
#include <iostream> #include <math.h> using namespace std; int main() { float x1,x2,y1,y2,a,b,P,S; cout<<"x1=;x2=;y1=;y2="; cin>>x1>>x2>>y1>>y2; a=fabs(x2-x1); b=fabs(y2-y1);
C++ Вычисление площади фигуры Составить программу приближенного вычисления площади фигуры, ограниченной заданными линиями.использовать метод прямоугольников. Для по- строения прямоугольника использовать правый конец отрезка. y = −2x*x + 3x + 6, y = x + 2. подробнее

Показать сообщение отдельно
Lutik
0 / 0 / 0
Регистрация: 12.11.2009
Сообщений: 10
06.03.2011, 18:08  [ТС]     Вопрос по шаблону
Цитата Сообщение от Saiberg Посмотреть сообщение
Лично мне не понятно как это должно работать.
в MSVS2010 собиратся , НО

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template <typename T, int size>
T Min(T (&array)[size]) 
{
  T result = array[0];
  int i = size;
// i = 0x0ccccccc
  for (int i = 1; i < size; ++i)
    if (array[i] < result)
      result = array[i];
 
  return result;
}
 
int main(int argc, char *argv[]) {
  char s[] = { 'a', 'c', 'd', 'f', 'a' } ;
  printf("%c\n", Min(s));
 
  system("pause");
  return 0;
}
тоесть цикл как минимум будет молотить много лишних итераций.

новерное так нужно
C++
1
Min<char*, sizeof(s)>(s);
а как он вообще выводит второй аргумент(не уверен что правильно выразился) int size ?
Изначально все было так
C++
1
2
3
4
5
6
7
8
9
template <typename Any, int size>
Any Min(Any (&mas)[size])
{
        Any minval=mas[0];
        for(int i=0; i<sz; i++)
                if(mas[i]<minval)
                        minval = mas[i];
        return minval;
}
При вызове из main
Код C++
C++
1
2
int arr[]={4,3,2,1};
Min(arr);
size имеится ввиду количество эллементов масива.
Если я напишу так
C++
1
Min<char*, sizeof(s)>(s);
То как толк от шаблона, я так понимаю он долден сам ухватывать тип масива arr?
 
Текущее время: 04:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru