C ++ - Многомерные массивы - PullRequest
       5

C ++ - Многомерные массивы

3 голосов
/ 14 октября 2010

При работе с многомерными массивами возможно ли присвоить массиву два разных типа переменных ...

Например, у вас есть массив int example[i][j] Возможно ли для i и j два совершенно разных типа переменных, таких как int и string?

Ответы [ 6 ]

7 голосов
/ 14 октября 2010

Звучит так, будто вы ищете:

std::vector<std::map<std::string, int> > myData1;

или, возможно:

std::map<int, std::map<std::string, int> > myData2;

В первом случае вам потребуется изменить размер вектора до соответствующего размера перед использованием операторов индексирования:

myData1.resize(100);
myData1[25]["hello"] = 7;

... в то время как второй позволит вам назначить любой элемент напрямую (и редко):

myData2[25]["hello"] = 7;
3 голосов
/ 14 октября 2010

Нет. Это невозможно. Возможно, вы захотите взглянуть на карту STL .

2 голосов
/ 14 октября 2010

Нет, но вы можете использовать std :: maps .

2 голосов
/ 14 октября 2010

Нет, C ++ допускает в качестве индексов только целочисленные типы (например, int, long, unsigned int, size_t, char).

Если вы хотите индексировать по строке, вы можете попробовать std::map<std::string,mytype>, но усложнить попытку расширить это до двух измерений.

1 голос
/ 14 октября 2010

Нет, вы можете использовать только целочисленные типы в качестве индексов.

0 голосов
/ 26 февраля 2012

Нет, ты не можешь.Вы можете достичь этого с помощью std::map.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...