Вы должны попытаться извлечь самую маленькую проблему, с которой у вас возникли проблемы.Было бы легче помочь, если бы вы могли сузить, в чем именно состоит ваш вопрос.
Если у вас возникли проблемы с пониманием того, как использовать класс pair
из вашего примера в контексте массива, возможно, следующий небольшой (автономный) пример поможет:
#include <iostream>
#include <string>
class pair {
public:
std::string object;
double key;
};
void print_pair(const pair& p) {
std::cout << p.object << " = " << p.key << std::endl;
}
int main() {
// allocated on the stack, dies at the end of the function
pair p;
p.object = "question";
p.key = 42;
print_pair(p);
pair* pp = new pair();
(*pp).object = "6 * 10"; // We need to dereference the pointer, kinda clumsy syntax
pp->key = 60; // Luckily there's a short hand! pp[0].key = 60; is the same thing
print_pair(*pp);
delete pp; // remember to clean up!
pair* ap = new pair[10]; // allocate 10 pairs
ap[0].object = "zero";
(*(ap + 0)).key = 0; // same thing, ap[N] is the same as *(ap + N)
print_pair(ap[0]);
delete []ap; // remember to use the [] syntax when you new'ed like that!
}