c++ - 递归标准 C++ 库容器类型?
问题描述
是否可以定义标准 C++ 库容器类型 UM、OM 和 L,以便:
UM
是一个std::unordered_map
带有 key_typeint
和 mapped_type 的迭代器OM
OM
是一个std::map
带有 key_typeint
和 mapped_type的L
L
是std::list
UM 的迭代器之一
?
解决方案
像这样的东西:
#include <unordered_map>
#include <map>
#include <list>
struct Container{
struct List;
using OM = std::map<int, List>;
using UM = std::unordered_map<int, typename OM::iterator>;
using L = std::list<typename UM::iterator>;
struct List{
L l;
};
UM um;
OM om;
L l;
};
int main() {
Container c;
c.om[0] = Container::List();
c.um[0]=c.om.begin();
c.l.push_back(c.um.begin());
}
推荐阅读
- python - 给定起点,如何以对角线方式遍历数据框?
- javascript - 如何在 React Native 中将 UInt16 或字节转换为心跳率
- c++ - 无法应用数组 unique_ptr 的 to_address
- amazon-web-services - Cloudfront 到 s3 重定向到子域给出访问被拒绝错误
- python - Python:提高 keras 顺序模型的准确性
- php - 我如何将数据库连接到不属于我的远程服务器(运行 phpmyadmin)
- python - 根据值从熊猫数据框中的特定位置获取最后 N 行
- android - 在模拟器上启动应用程序时出错 - Android
- sockets - 你能判断一个 UDP 数据包是否比另一个数据包“年轻”吗?
- npm - NPM 警告需要必须由自我/更新节点安装的对等依赖项