gpt4 book ai didi

c++ - 来自 std 的 unordered_set

转载 作者:太空宇宙 更新时间:2023-11-04 16:28:56 26 4
gpt4 key购买 nike

我必须将 Windows 代码重写为跨平台 View 。这是示例:

std::unordered_set<Type>::iterator it = ...;
it._Ptr->_Myval->...

代码中的每个地方都有 _Ptr 成员在迭代器中,但我在文档中找不到它。我认为它适用于 visual studio(它是 STL 的实现)。任何想法如何更换它?什么是 _Myval


更新:

for(std::unordered_set<QuadTreeOccupant*>::iterator it = ...)
it->aabb;

class QuadTreeOccupant
{
public:
AABB aabb;
};

it->aabb 行的错误:

error: request for member ‘aabb’ in ‘* it.std::__detail::_Hashtable_iterator<_Value, __constant_iterators, __cache>::operator-> with _Value = qdt::QuadTreeOccupant*, bool __constant_iterators = true, bool _cache = false, std::_detail::_Hashtable_iterator<_Value, __constant_iterators, __cache>::pointer = qdt::QuadTreeOccupant* const*’, which is of non-class type ‘qdt::QuadTreeOccupant* const’

最佳答案

这些是特定于 VC 实现的 unordered_map 的实现细节。您应该只删除对 _Ptr_Myval 的引用并使用以下任一方法:

  • 它->
  • (*i​​t).

代替 it._Ptr->_Myval.

关于c++ - 来自 std 的 unordered_set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9203542/

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