gpt4 book ai didi

c++ - 在C++中定义 map 类型的 map ?

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

我正在尝试定义从 longmaplongFILE * 的无序映射,但不断收到编译器错误。知道如何纠正它吗?

#include <string>
#include <iostream>
#include <stdio.h>
#include<unordered_map>
using namespace std;

typedef unsigned long ulong;
typedef unsigned int uint;
typedef unsigned short uint16;
typedef unsigned char uchar;

typedef std::unordered_map<long, std::unordered_map<long, *FILE> > TYPE1;

int main(int argc, char *argv[]) {
TYPE1 x;
x[1][2] = fopen(argv[1], "rb");

return 0;
}

这里是编译错误

$ g++ -std=c++11 te2a.cc
te2a.cc:15:64: error: template argument 2 is invalid
te2a.cc:15:64: error: template argument 5 is invalid
te2a.cc:15:66: error: template argument 2 is invalid
te2a.cc:15:66: error: template argument 5 is invalid
te2a.cc:15:73: error: invalid type in declaration before ‘;’ token
te2a.cc: In function ‘int main(int, char**)’:
te2a.cc:19:5: error: invalid types ‘TYPE1 {aka int}[int]’ for array subscript

最佳答案

就是星号的位置:

typedef std::unordered_map<long, std::unordered_map<long, FILE*>> TYPE1;

会做的。

关于c++ - 在C++中定义 map 类型的 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31738005/

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