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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Открытие внешнего файла http://www.cyberforum.ru/cpp-beginners/thread282709.html
ДОбрый день! Как реализовать событие на кнопку для открытия внешнего файла, например *.doc, который находится в подкаталоге с программой? Т.е. полный путь писать не надо! Средствами ShellAPI, что то не получается это реализовать: ShellExecute(Application->MainFormHandle, "open", "Lab_1.doc", NULL, ExtractFilePath(Application->ExeName).c_str(), SW_SHOWNORMAL); Зараннее, Спасибо!
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 определить номер столбца матрицы, имеющего наибольшую сумму элементов. Поменять этот столбец со строкой, имеющей наименьшую сумму элементов. Матрицу я создал а вот с остальным пока туго. Возможно ли доделать начатый мной пример? #include <stdio.h> #include <conio.h> #include <stdlib.h> void main()
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 least 10. request id (int) SERVERDATA_EXECCOMMAND / SERVERDATA_AUTH (int) SERVERDATA_AUTH is currently 3 SERVERDATA_EXECCOMMAND is currently 2 string1 (is the command to run).
C++ Какую книгу лучше подобрать? Доброго времени суток! Подскажите, пожалуйста, какую книгу или самоучитель лучше подобрать для изучения C++. Необходимо для создания приложений под Windows: базы данных, управление внешними устройствами. Опыт в программировании минимальный: сам умею только "Hello World!". Спасибо! подробнее

Показать сообщение отдельно
Overmind024
99 / 99 / 6
Регистрация: 10.09.2010
Сообщений: 267
25.04.2011, 21:31     Контейнер set
Ваш 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;
}
Если что то еще непонятно спрашивайте.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru