gpt4 book ai didi

c++ - 枚举类的 static_cast 的时间复杂度

转载 作者:搜寻专家 更新时间:2023-10-31 01:24:19 25 4
gpt4 key购买 nike

假设我在 C++ 中有以下内容

enum class my_enum {
item1, item2, ..., itemn, last_
};

我希望能够在 my_enum 之间进行转换和 int很容易(用于映射/定位目的),例如使用static_cast<size_t>(enum_object) .现在,根据 n 的时间复杂度是多少? , 的这个操作?是O(n)O(1) ?更奇怪的建议是,有人保证 O(log(n)) 吗?时间存储类似 map<my_enum,size_t> 的内容?

最佳答案

简答:转换为 O(1),插入 map 为 0(log(n)),插入 unordered_map 为 0(1)

长答案:

enum 被映射到 int 所以 enum 实际上是一个 int inside 内存

假设您有:

enum MyEnum{enum1, enum2};

static_cast 是在编译时完成的,所以下面的操作在复杂度上完全像一个赋值

    int a=static_cast<int>(MyEnum::enum1);

关于插入,映射,请引用STL,你有详细的说明

关于c++ - 枚举类的 static_cast 的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58247941/

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