gpt4 book ai didi

c++ - 我如何使用模板值作为 map 中的键?

转载 作者:行者123 更新时间:2023-11-28 01:03:06 25 4
gpt4 key购买 nike

我正在尝试使用 STL::map 实现 3 维矩阵。

我有一张 map ,其“键”是模板化的,“值”是其他 map (针对其他维度)。这是我得到的编译器错误-

graph.h|37| error: ISO C++ forbids declaration of ‘map’ with no type· 

我真的不能将模板值作为 map 的键,还是有其他方法可以做到这一点。这是我尝试这样做的代码部分-

using namespace std;
template <class V>·
class Graph {
...
map<V, map<V,int> > vertices;·
...
};

------ 更新:

我说我修复它的评论被隐藏了,这个错误很愚蠢,我应该一直使用 std::map 而不是直接映射。感谢您的帮助。

最佳答案

So is it true that I cannot have a templated value as a map's keys?

不,没有这样的规则。如果有任何这样的规则,那将意味着泛型编程的强大,模板存在的目的将毫无用处。

or is there another way to do it?

您只是遇到语法错误,因为您没有使用其 (std) namespace 限定映射。

对我来说很好 here

#include<map>

template <class V> class Graph
{
std::map<V, std::map<V,int> > vertices;

};

int main()
{
return 0;
}

关于c++ - 我如何使用模板值作为 map 中的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7802195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com