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

Сортировка для контейнера с указателями - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' http://www.cyberforum.ru/cpp-beginners/thread643383.html
Добрый день, уважаемые форумчане есть функция которая считает площадь треугольника double Triangulation::squareTriang(POINT &t1, POINT &t2, POINT &t3) { double a,b,c; double Y,S; a=distPoints(t1,t2); b=distPoints(t2,t3); c=distPoints(t3,t1); Y=acos((a*a+c*c-b*b)/(2*a*c));
C++ подскажите сайт где можно найти задачи по c++ сабж подскажите сайт где есть задачки по c++ которые можно порешать и онлаин проверить правильность выполненного задания. http://www.cyberforum.ru/cpp-beginners/thread643356.html
ввод-вывод информации C++
начнем с задания...: Ввод текстовой строки с клавиатуры, при отображении пропускать гласные буквы, набранные на русском языке. Посчитать количество пропущенных букв и количество слов в строке. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <locale.h>
Делаем регулярные выражения C++
Приветствую. Свою молодость провел бурно, на программирование времени не осталось. Печально. Прошу помощи: Есть текстовый файл с записями вида: 901 1800000 1899999 901 7000000 7299999 Скрывать не буду - это телефонные коды, разбитые по регионам и принадлежащие тому или иному оператору связи. Есть задача - привести все это к виду "регулярного выражения" (надеюсь все знают что...
C++ Замена группы символов в строке! http://www.cyberforum.ru/cpp-beginners/thread643267.html
Вводится строка, заменить группу более трёх одинаковых символов многоточием(тремя точками). Например: Helllo woood , должно получится: He...o w...d. -------------------------------------------------------------------------------------------------------- Что то не так сделал! В чём проблемы?? #include "stdafx.h" #include "iostream" #include "conio.h" using namespace std;
C++ Как отключить или убрать иконку выхода [x] ? Как отключить или убрать иконку выхода ? В интернете нарыл много информации и на просторах киберфорума тоже, но она мне никак не помогла. У меня Visual Studio 2010 подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
28.08.2012, 12:29     Сортировка для контейнера с указателями
Понадобилось сделать контейнер указателей, но встала проблема сортировки и типа контейнера :
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
#include <set>
using std::set;
struct MYSTRUCT
{
    int num;
    char* name;
    MYSTRUCT() : num(NULL) 
    {
        name = new char[20];
        *name = num;
        name[1] = '\0';
    }
    MYSTRUCT(int x) : num(x)
    {
        name = new char[20];
        name[1] = '\0';
        *name = num;
    }
    MYSTRUCT(const MYSTRUCT& ms) : num(ms.num)
    {
        name = new char[20];
        strcpy_s(name, 19, ms.name);
    }
 
    bool operator<(const MYSTRUCT &ms) const
    {
        if (num < ms.num)
            return true;
        return false;
    }
 
    bool operator<(const MYSTRUCT* ms) const
    {
        if (num < ms->num)
            return true;
        return false;
    }
 
    ~MYSTRUCT()
    {
        num = NULL;
        delete name;
    }
 
};
 
void main()
{
    set <MYSTRUCT*> mySet;
    MYSTRUCT a(3), b(5), c(3);
    mySet.insert(&a);
    mySet.insert(&b);
    mySet.insert(&c);
    mySet.clear();
    
    int crapForTimeWasting = 0;
}
После выполнение в mySet лежит 3 объекта.
Как перегрузить сравнение для указателей, а так же как намекнуть set, что указатели равны, и он не multiset?

Не по теме:

p.s Нормально ли пренебрегать инкапсуляций, если класс, имеющий контейнер объектов/указателей на объекты другого класса - приватит этот контейнер, а класс, находящийся в этом контейнере - публичный, но при этом нигде больше не используется и не имеет статический методов? Что-то типа :

C++
1
2
3
4
5
6
7
8
9
10
11
12
class B
{
public :
*a lot of information without Set/Get methods*
};
class A
{
private :
vector<B*> field;
public :
void AddObjectIntoField(B*);
};

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru