小编Nac*_*low的帖子

Enum如何在C上分配内存?

我正在尝试使用C和汇编(intelx8086)语言.

我也在使用一个班级,我的一个朋友给了我一个

typedef enum data_10 {a=0,b=7,c=10,} data_10_type;
Run Code Online (Sandbox Code Playgroud)

我想按位使用这个类(AKA构造它/在Assembly上销毁它).我的问题是,"枚举"需要多少内存?

c assembly enums

6
推荐指数
2
解决办法
7924
查看次数

C++,Map <>结构,但有Gaps

我试图用一个类在C++中创建一个字典<key,value>.

我在网上发现地图是我被禁止使用的课程.

但是,当我尝试使用Map时,它会填补键之间的间隙.

这是一个问题,因为键是数字,但它们非常稀疏.

所以在一组中我可能有[1,20,30000,70000000].我希望我的地图只存储这4个值,而不是每个值在1到70000000之间.

#include <iostream>
#include <map>

using namespace std;

int main()
{
    map<int,int> a = {{1,-1},{20,200}}; // I want this to just store {1,20}
    for(int x = 0; x < a.size(); x++) cout << a[p(x)] << ","; //however, when I print it I get [0,1..,19,20]
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

OUTPUT

0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,200,     
Run Code Online (Sandbox Code Playgroud)

是否有一些解决方法可以避免C++"填补空白"或STD中可用于此目的的任何其他类?

c++ dictionary

-1
推荐指数
1
解决办法
51
查看次数

标签 统计

assembly ×1

c ×1

c++ ×1

dictionary ×1

enums ×1