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

Контейнер set - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Открытие внешнего файла http://www.cyberforum.ru/cpp-beginners/thread282709.html
ДОбрый день! Как реализовать событие на кнопку для открытия внешнего файла, например *.doc, который находится в подкаталоге с программой? Т.е. полный путь писать не надо! Средствами ShellAPI, что...
C++ Как вынести метод возвращающий шаблонный класс в из hpp в cpp? Есть код в заголовоном файле: template<class T,typename Ptr> class LINQ { private: Ptr begin; Ptr end; std::vector<T*> res; public: http://www.cyberforum.ru/cpp-beginners/thread282699.html
масиф C++
i=90; for(i=90;i<buf;i+=180); if (buf==i) { ........ } сдесь i принемает значения 90 270 450 .... как сделать что бы принемало и -90 -270 -450 ....?? так ?
Замена строки на столбец в двумерном массиве C++
Здравствуйте! Требуется решить задачку следующего характера: В квадратной матрице A определить номер столбца матрицы, имеющего наибольшую сумму элементов. Поменять этот столбец со строкой, имеющей...
C++ Отправить строку серверу и получить ответ http://www.cyberforum.ru/cpp-beginners/thread282651.html
Требуется отправить строку серверу, следующей структуры: packet size (int) the number of bytes from the start of the requestid to the end of string2 (including the null byte). It must be at...
C++ Какую книгу лучше подобрать? Доброго времени суток! Подскажите, пожалуйста, какую книгу или самоучитель лучше подобрать для изучения C++. Необходимо для создания приложений под Windows: базы данных, управление внешними... подробнее

Показать сообщение отдельно
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
25.04.2011, 21:31
Ваш set должен содержать слова, а не строку.
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
#include <iostream>
#include <set>
#include <stdio.h>
#include <algorithm>
using namespace std;
 
class cmp
{
public:
    bool operator()(char *left,char *right)
    {
        return strcmp(left,right)<0;
    }
};
 
int main()
{ 
    char str[255],*temp;
    gets(str);
    set<char*,cmp> s;
    temp = strtok(str," ,.!?");
    do
    {
        s.insert(temp);
    }while(temp = strtok(NULL," ,.!?"));
    for(set<char*,cmp>::iterator i=s.begin();i!=s.end();i++)
    {
        cout << *i << endl;
    }
    cin.get();
    cin.get();
    return 0;
}
Как то так.

Добавлено через 23 часа 24 минуты
Не могли бы Вы прокомментировать мне этот код ? Хочется разобраться
Спасибо.
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
#include <iostream>
#include <set>
#include <stdio.h>
#include <algorithm>
using namespace std;
 
class cmp//Объект сравнения 
{
public:
        bool operator()(char *left,char *right)
        {
                return strcmp(left,right)<0;
        }
};
 
int main()
{ 
        char str[255],*temp;
        gets(str);//Вводим строку
        set<char*,cmp> s;// Создаем множество s из массива символов и операцией сравнения cmp
        temp = strtok(str," ,.!?"); //Функция  strtok возвращает подстроку из первого параметра разделенную любым символом из строки второго параметра
        do
        {
                s.insert(temp);
        }while(temp = strtok(NULL," ,.!?"));// Если же использовать вместо первого параметра NULL то функция будет находить вторую подстроку и тд.
        for(set<char*,cmp>::iterator i=s.begin();i!=s.end();i++)
        {
                cout << *i << endl;
        }
        cin.get();
        cin.get();
        return 0;
}
Если что то еще непонятно спрашивайте.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru