Если у меня есть следующий класс C ++:
template <typename T>
class my_class {
public:
private:
struct assessment {
int mark;
String grade;
} std::map<T*, mark> class_map;
}
Если бы я делал глубокую копию с конструктором копирования, как бы я мог убедиться, что содержимое указателей в ключах копируется, в то время как также убедитесь, что каждый ключ соответствует той же структуре оценки, что и значение? В настоящее время у меня есть:
my_class(my_class const& other) {
typename std::map<T*, mark>::iterator it = other.class_map.begin();
while (it != other.class_map.end()) {
class_map[it->first] = Struct assessment { 70, "Credit" }
}
}
Из этого в ключе будут храниться одни и те же адреса, но я не уверен, как сделать так, чтобы ключи указывали на разные адреса, но все же указывают на то же содержание. Я знаю, что использование ключей в качестве указателей кажется странным, но в моем назначении есть особая причина, по которой мне это нужно.