std::unordered_map 解决 ”error C2338: The C++ Standard doesn’t provide a hash for this type.”

参考
https://blog.csdn.net/HappyKocola/article/details/74188452

直接贴代码

		struct Vertex {
			vec3 pos;
			vec3 color;
			vec2 texCoord;
		};
		std::unordered_map<Vertex, int> uniqueVertices = {};

直接这样在 vs2013 会报 ”error C2338: The C++ Standard doesn’t provide a hash for this type.”

class Hasher {
			public:
				size_t operator()(const Vertex& vertex) const {
					//calculate hash here.
					return hash_val(
						vertex.pos.x,
						vertex.pos.y,
						vertex.pos.z,
						vertex.texCoord.x,
						vertex.texCoord.y);
				}
			};
			class Equal
			{
			public:
				bool operator()(const Vertex& vertex, const Vertex&vertex2) const{
					if (vertex.pos.x == vertex2.pos.x &&
						vertex.pos.y == vertex2.pos.y 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值