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

Как написать функцию для сортировки строк в порядке возрастания из контейнера set ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сортировка массива, удаление простых чисел http://www.cyberforum.ru/cpp-beginners/thread1017603.html
.Задан массив Z(m) целых чисел. Если массив является знакочередующимся, то упорядочить его в порядке возрастания модулей, если нет, то упорядочить его по убыванию. После преобразования удалить из...
C++ Не правильно работает! Дана матрица размера M × N. Найти номера строки и столбца для элемента матрицы, наиболее близкого к среднему значе-нию всех ее элементов. #include<iostream.h> #include<math.h>... http://www.cyberforum.ru/cpp-beginners/thread1017590.html
C++ Вычислить значения выражения (f(a,b,c)f(a+b,b+c,c+a))/f(a-b,b-c,c-a)
Первокурсник ;) задачка с использованием функций, все очень для меня сложно( f(x,y,z)=(x-y)^2+(z-x)^2+(z-x-y)^2 Найти (f(a,b,c)f(a+b,b+c,c+a))/f(a-b,b-c,c-a)
C++ Переменная в цикле for
Пишу консольное приложение, а оно ругается такими ошибками как: main.cpp name lookup of `i' changed for new ISO `for' scoping main.cpp using obsolete binding at `i' main.cpp invalid types...
C++ Вывод меньшего из полученных значений http://www.cyberforum.ru/cpp-beginners/thread1017553.html
Программа вычисляет синус, косинус и логарифм, но суть не в этом. Подскажите пожалуйста, как функцией cout вывести меньшее из полученных значений, что дописать? #include <iostream> #include...
C++ Передача указателя Здравствуйте! Форумчане, очень нужна помощь..:cry: В общем ситуация такова: написана программа, нужно переделать её так, чтобы в функции передавался не массив, а указатель на него. :) Знаю,... подробнее

Показать сообщение отдельно
coder09
Сообщений: n/a

Как написать функцию для сортировки строк в порядке возрастания из контейнера set ? - C++

24.11.2013, 19:09. Просмотров 208. Ответов 0
Метки (Все метки)

Пишу программу интернет магазин
не могу написать функцию которая бы сортировала строки в порядке возрастания .
Например в контейнере создал 12 строк с характеристиками и ценами на товар .
Я нажимаю команду и программа должна вывести строки в порядке возрастания характеристик и цен на товар .
Ниже мой текущий код с попыткой решения.
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <set>
#include <iostream>
#include <string>
#include <fstream>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
set<string> storage;
set<string> customers_storage;
 
 
void sort(){
    cout << "available items in store:\n";
    for (set<string>::iterator it = storage.begin(); it != storage.end(); ++it){
        cout << *it << endl;
    }
}
 
void create_pc(){
    
    char x;
    cout << "Please, enter type of your computer :";
    cin >> x ;
    if ( x=='d') {
        cout << "Please, enter computer's specifications :\n";
        
        string s,c,h,g,p,l;
        char z=' ' ;
        cout << "CPU TYPE - " ;
        getline (cin,s);
        cout << "CPU SPEED- " ;
        getline (cin,c);
        cout << "HARD DISK CAPACITY - " ;
        getline (cin,h);
        cout << "GRAPHICS CARD TYPE - " ;
        getline (cin,g);
        cout << "PRICE - " ;
        getline (cin,p);
        l = s+z+c+z+h+z+g+z+p;
        storage.insert(l);
        cout <<endl<<"DONE , THANK YOU! "<<endl;
    }
    
    if ( x=='l') {
        cout << "Please, enter laptop's specifications :\n";
        string s,c,h,g,b,w,p,l;
        char z=' ' ;
        cout << "CPU TYPE - " ;
        getline (cin,s);
        cout << "CPU SPEED  " ;
        getline (cin,c);
        cout << "HARD DISK CAPACITY - " ;
        getline (cin,h);
        cout << "GRAPHICS CARD TYPE - " ;
        getline (cin,g);
        cout << "BATTERY - " ;
        getline (cin,b);
        cout << "WEIGHT - " ;
        getline (cin,w);
        cout << "PRICE - " ;
        getline (cin,p);
        l = s+z+c+z+h+z+g+z+b+z+w+z+p;
        storage.insert(l);
       
        cout <<endl<<"DONE , THANK YOU! "<<endl;
    }
    
}
 
int main(){
    char c;
    ifstream in("input.txt");
    if (in.is_open())
    {
        for (string str; getline(in, str);)
        storage.insert(move(str));
    }
    
    do{
        cout << endl<<"Please, enter operation type\n";
        cout <<"'c' - CREATE A NEW COMPUTER"<<endl <<"'o' - SORT"<<endl;
        cin >> c;
  
        
        else if (c == 'c') insert_pc();
    
        else if (c=='o') sort();
    
    } while (c != 'e');
 
    return 0;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru