我有这样的情况,我需要实现接受任何对象类型参数的“ map ”,因为到目前为止,我不知道我将把哪种类型的参数存储到 map 中。稍后我需要将该 Map 存储到一个 vector 中。 我这样写:
vector<Map>vect;
但是编译器说,我需要为 Map 指定参数类型。有没有办法像上面那样声明?如果我需要实现模板,谁能清楚地说出如何在 map 中实现模板。我对 C++ 非常陌生。 在 Java 中,我可以直接将映射存储到 ArrayList 中,但在 C++ 中,这对我来说非常复杂。请帮助我。
最佳答案
由于不知道map中对象的类型,可以使用void*或者unique_pointer。
std::vector<std::map<KeyType, void*>> vect;
或者如果您实际上是说所有值都继承自 Object,那么:
std::vector<std::map<KeyType, Object*>> vect;
作为旁注,您从未提及 key 类型,所以也许您指的是 std::set 而不是 map?
关于c++ - 将模板类型参数的映射存储到 C++ 中的 Vector : Visual Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42825349/