Хорошо, мои навыки указателя немного бедные. Im создает мой собственный простой контейнер карты, где могут храниться различные типы данных. Я пытаюсь создать метод insertPair()
, где структура хранится в массиве указателей, но я боюсь синтаксиса. Я создал структуру, и я попытался присвоить значение a
temp.key
и b
- temp.value
. как это сделать и сохранить структуру в массиве указателей? ive создал test
объект в main()
и передал в int
и string
. Любые рекомендации очень ценятся. Благодарякак хранить структуры в массиве указателей с использованием шаблона
template <typename K, typename V>
class CMyMap
{
int arraysize;
CMyMap* myArr[5];
public:
struct pair
{
K key;
V value;
};
CMyMap()
{
arraysize = 0;
}
void insertPair(K a, V b)
{
pair* temp = new pair;
temp->key = a;
temp->value = b;
myArr[0] = temp; // trying to store the values of temp.key and temp.value to myArr[0]
}
void display()
{
// dont how to display the key and value correctly.
cout << myArr[0] << endl;
}
};
int main()
{
CMyMap<int, string> test;
test.insertPair(23, "bob");
test.display();
cin.get();
}
Несколько проблем: что такое 'map'? Почему у вас есть метод с именем 'map()' без типа возврата? Вы указали указатель, но вы обращаетесь к методам с помощью оператора '.', когда он должен быть' -> '. Внутри конструктора вы объявляете новую переменную вместо изменения члена данных. 'temp' является указателем на пару, но вы назначаете его массиву *' map * '*, к которому он несовместим ... – 0x499602D2
Извините, я изменил имя класса без его обновления для конструктора. Ив пересмотрел код. (карта была именем старого класса) – user3424696