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

Поиск в STL - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Символы на С http://www.cyberforum.ru/cpp-beginners/thread282044.html
Дана строка S, изображающая вещественное число в формате с плавающей точкой, и целое число N (>0). Вывести набор символов, изображающих первые N цифр дробной части этого вещественного числа (без округления). program sam6; var s,s1:string; i,j,k,l,n:integer; begin write ('s:='); readln(s); write ('n:='); readln(n); for i:=2 to length(s)-1 do
C++ Игра Теннис Теннис Написать программу, которая бы имитировала игру в теннис. Поле для игры представляет собой прямоугольник, по которому движется теннисный мячик. С правой стороны находится «ракетка» игрока, которую можно двигать вверх или вниз. Игра продолжается до тех пор, пока игрок не пропустит мячик 5 раз. В качестве второго игрока может выступать компьютер или другой игрок. http://www.cyberforum.ru/cpp-beginners/thread282038.html
template .h .cpp C++
Здраствуйте! Возник вопрос по поводу шаблонов. В книге лафоре написана очередь Queue с использованием шаблонов, и там всё раздельно объявления в .h, а определиние в .cpp соотвественно. Захотел сделать своё множество Set<TYPE>. Вот он если чё: #ifndef SET_H #define SET_H #include "SetItem.h" #pragma once template <typename TYPE> class Set { template <typename Ticket> friend class...
Палиндромы в текстовом файле на С++ C++
Задача Подсчитать количество слов-палиндромов в текстовом файле (.txt). Cлова разделены пробелом или каждое записано с новой строки. Пример asa mom dad joy 3 палиндрома или Пример
C++ непонятно ...подпрограмма возвращает true http://www.cyberforum.ru/cpp-beginners/thread281975.html
Подпрограмма возвращает true, если все элементы массива отличны от нуля, и подсчитывает, сколько в нём отрицательных элементов. Применив её к массиву X и Y, вывести массив,где больше отрицательных элементов,а если их нет, вывести сообщение
C++ Строка в double Ecть массив char={2,3,6,.,8,9} Как написать алгоритм, чтоб получить число 236.89? Я все перепробовал, ничего не выходит. подробнее

Показать сообщение отдельно
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
24.04.2011, 13:34     Поиск в STL
функция STL - find, прекрасно может справиться с любым пользовательским типом, для этого в С++ есть мощная методика в перегрузки операторов, добавьте несколько строк кода для сравнения в свою структуры и всё, вот наглядный пример:
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
struct   man {
    char   name[32];
    int      age;
    man(void) {}
    man(const char* hName, const int hAge) {
    strcpy(name, hName);
    age = hAge;
    }
    // перегрузка для строки
    bool operator == (const char*  hStr) const {
    return  (! strcmp(name, hStr));
    }
    // перегрузка для числа
    bool  operator == (int hAge) const {
    return (age == hAge);
    }
    // перегрузка для всей структуры
    bool  operator == (const man  hMan) const {
          return (! memcmp((const void*)this, (const void*)&hMan, sizeof(man)) );
    }
};
 
 
 
void  main(){
    vector<man>  v;
    v.push_back( man("Alex", 27 ));
    v.push_back( man("Stas", 25 ));
    v.push_back( man("Katy", 24 ));
    v.push_back( man("Oly", 20 ));
    v.push_back( man("Pavel",30 ));
 
   // поиск по-всей структуре
   vector<man>::iterator  iter1 = find( v.begin(), v.end(),  man("Katy", 24));
   if( iter1 != v.end() ) 
        printf("Name = %s,  age = %d\n", iter1->name, iter1->age);
    
   // поиск по-строке в структуре
   vector<man>::iterator  iter2 = find( v.begin(), v.end(),  "Oly");
   if(iter2 != v.end() )
    printf("Name = %s,  age = %d\n", iter2->name, iter2->age);
 
   // поиск по-числу в структуре
  vector<man>::iterator  iter3 = find( v.begin(), v.end(),  25);
  if(iter3 != v.end() )
       printf("Name = %s,  age = %d\n", iter3->name, iter3->age);
}
 
Текущее время: 13:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru