为什么我可以将<unordered_map>与引用一起使用,但不能将<stack>与它们一起使用?

Why I can use <unordered_map> with references but I can't use <stack> with them?

提问人:awakair 提问时间:11/11/2023 更新时间:11/11/2023 访问量:87

问:

<unordered_map>with references 工作正常,但甚至无法编译<stack>

我有并且它工作正常,但是当我尝试声明时出现错误std::unordered_map<char, Argument&>std::stack<Argument&>In template: 'allocate' declared as a pointer to a reference of type 'ArgumentParser::ArgParser::Argument &'

C++ STL 堆栈

评论

2赞 Eljay 11/11/2023
可能是因为无法重新绑定引用。幸运的是,reference_wrapper可以重新绑定!
1赞 Some programmer dude 11/11/2023
您认为使用容器中的引用可以解决的原始和潜在问题是什么?通常,人们会将对象本身存储在容器中,然后使用对这些对象的引用。也许您的用例可能会更好地解决?也许可以通过其他方式解决?请始终直接询问潜在的和实际的问题,然后告诉我们您想到的解决方案,我们可以告诉您是否可行,并可能为您提供其他更好的解决方案。std::shared_ptr<Argument>
3赞 Some programmer dude 11/11/2023
简而言之,您的问题是一个 XY 问题
2赞 Drew Dormann 11/11/2023
your 中的元素属于 类型,它不是引用类型。std::unordered_mapstd::pair<char, Argument&>

答: 暂无答案