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

Ассоциативный массив в С++ (типо пэхапе) - C++

Восстановить пароль Регистрация
 
supra7sky
 Аватар для supra7sky
15 / 15 / 1
Регистрация: 07.02.2013
Сообщений: 123
01.04.2013, 18:10     Ассоциативный массив в С++ (типо пэхапе) #1
Где можно посмотреть такой класс?
Сделал такое, но пространства имен не изучал еще.
Как сделать так что бы можно было написать:
using namespace Ass; и мне бы не приходилось каждый раз писать расширение области видимости в индексах Ass::ID, Ass::SCORE
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
using namespace std;
 
class Ass
{
private:
    int *arr,
         size;
public:
    enum
    { ID, SCORE };
 
    Ass(int SIZE)
    {
        arr = new int[SIZE];
        size = SIZE;
        for (int i = 0; i < SIZE; i++)
            arr[i] = 0;
    }
    int &operator[] (int i)
    {
        if (i < 0 || i > size)
            cout << "Exceeded! \n\a\a\a\a\a\a";
        else
        return arr[i];
    }
 
};
 
 
 
int main()
{
    Ass mass(3);
    cout << mass[Ass::ID];
    cout << mass[Ass::SCORE];
 
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2013, 18:10     Ассоциативный массив в С++ (типо пэхапе)
Посмотрите здесь:

C++ ассоциативный массив
динамический ассоциативный массив C++
Ассоциативный массив C++
C++ Ассоциативный массив
Ассоциативный массив C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
01.04.2013, 18:13     Ассоциативный массив в С++ (типо пэхапе) #2
Цитата Сообщение от supra7sky Посмотреть сообщение
Как сделать так что бы можно было написать:
using namespace Ass; и мне бы не приходилось каждый раз писать расширение области видимости в индексах Ass::ID, Ass::SCORE
Никак. Разве что вынести enum из класса, или сделать еще один enum в gloabal scope (ну или там, где нужно)
C++
1
enum { ID = Ass::ID, SCORE = Ass::SCORE};
но ИМХО, это нехорошее решение. Писать там, где надо Ass::ID не так уж и сложно.
supra7sky
 Аватар для supra7sky
15 / 15 / 1
Регистрация: 07.02.2013
Сообщений: 123
01.04.2013, 18:20  [ТС]     Ассоциативный массив в С++ (типо пэхапе) #3
Интуиция подсказала написать так
Но все же сделать что бы имя пространства имен полностью совпадало с именем класса никак нельзя?
C++
1
2
3
4
5
6
namespace ass
{
    enum
    { ID, SCORE };
}
using namespace ass;
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
01.04.2013, 18:25     Ассоциативный массив в С++ (типо пэхапе) #4
если регистр букв отличается (как у тебя в примере), то можно.
Yandex
Объявления
01.04.2013, 18:25     Ассоциативный массив в С++ (типо пэхапе)
Ответ Создать тему
Опции темы

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