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

Асcоциативный класс. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ БЛОК СХЕМА Для программы http://www.cyberforum.ru/cpp-beginners/thread56167.html
#include <iostream> #include <fstream> using namespace std; int main() { int col, row, temp, repeat; char *File="temp.txt"; // исходный фаил
C++ самоучитель С++ посоветуйте посоветуйте пожалуйста электроный самоучитель по с++ , и если возможно то дайте ссылку ) А то те что искал все плохие ( http://www.cyberforum.ru/cpp-beginners/thread56162.html
Cоставить программу(лаб.) C++
ЗАДАНИЕ: Вычислить характеристики последовательности, вводимой с клавиатуры (без использования массивов и промежуточных файлов для хранения всей последовательности), учитывая, что элементы последовательности могут быть введены только один раз. ПРИМЕЧАНИЯ: В программе обязательно применение процедур и/или функций с передаваемыми параметрами. Не допускается использование типа string и array....
C++ Сравнение элементов двух двумерных массивов
Прошу помощи в написании данной задачи. Написал сам все что мог, выдает ошибку error C2447: '{' : missing function header (old-style formal list?) в VS 2008. Может есть какой то другой способ задания функции? Написать функцию, которая поэлементно сравнивает два за данных в качестве параметров двухмерных массива литерного типа одинаковой размерности и формирует массив целого типа такой же...
C++ Непересекающиеся окружности http://www.cyberforum.ru/cpp-beginners/thread56142.html
Окружность на плоскости однозначно может быть определена координатами ее центра (x,y) и радиусом r. Пусть заданы соответствующие характеристики нескольких окружностей: x1, y1, r1; x2, y2, r2 ... xn, yn, rn. Найти среди этих окружностей все уединенные окружности, т.е. такие, которые не имеют общих точек ни с одной из остальных окружностей, не лежат целиком внутри и не заключают в себе какой-либо...
C++ Сортировка текста в строке по алфавиту (латынь) Необходимо написать программу на языке C++, а именно: Реализовать программу, демонстрирующую решение поставленной задачи: -ввод исходных данных и вывод результата на экран производить в основной программе, решение задачи осуществлять в созданной функции. -Созданную функцию оформить в виде отдельного модуля(в составе проекта),включение текста функции в основную программу реализовать используя... подробнее

Показать сообщение отдельно
rangerx
1920 / 1529 / 139
Регистрация: 31.05.2009
Сообщений: 2,892
14.10.2009, 23:18     Асcоциативный класс.
Вот, что вроде этого
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
#include <string>
#include <vector>
 
struct MyPair
{
    std::string name;                                            // наименование товара
    int price;                                                   // цена товара
    MyPair(const std::string& n, int p) : name(n), price(p) {}   // конструктор для инициализации полей структуры
};
 
class A
{
    private:
        std::vector<MyPair> new_pair;  // сюда будут добавляться объекты после вызова метода Add     
    public:
        //----------------------------------------------------------------------------------Добавление пары ключ/значение
        void Add(const MyPair& curr_pair)
        {
            // если цена входит в диапазон от 1 до 100
            if( (curr_pair.price > 0) &&  (curr_pair.price <= 100) )
            {
                //проверка нет ли уже такого ключа
                for(int i = 0; i < new_pair.size(); ++i)
                    if(new_pair[i].name == curr_pair.name) return;  // такой ключ уже есть(добавление не происходит)
 
                //если нет, то добавить
                new_pair.push_back(curr_pair);
            }
        }
 
        //----------------------------------------------------------------------------------Поиск значения по ключу
        int Find(const std::string& key)
        {
            for(int i = 0; i < new_pair.size(); ++i)
                if(new_pair[i].name == key) return new_pair[i].price;  // значение соответствующее заданному ключу найдено
            return -1;                                                 // такого ключа нет
        }
};
 
//--------------------------------------------------------------------------------------------
int main()
{
        A obj;
        obj.Add( MyPair("milk", 40) );
        obj.Add( MyPair("sugar", 51) );
        obj.Add( MyPair("apples", 77) );
            
        std::string s;
        for(;;)
        {       
                std::getline(std::cin, s);
                if(s == ".") break;
                
                std::cout << s  << " - ";
                
                int val = 0;
                if( (val = obj.Find(s)) != -1 ) 
                        std::cout <<  val << "rub." << std::endl;
                else 
                        std::cout << "not fond." << std::endl;
                std::cout << std::endl;
        }   
        return 0; 
}
 
Текущее время: 14:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru