gpt4 book ai didi

涉及 Bool 设置的 C++ 优化

转载 作者:搜寻专家 更新时间:2023-10-31 00:29:50 26 4
gpt4 key购买 nike

好的,所以我正在寻找“最佳方法”来弄清楚如何处理这个问题。

我有一堆设置的 bool 值,想更清晰地存储和访问它们。

 -- Current
bool MySetting1;
bool MySetting2;
bool MySetting3;
bool MySetting4;
.....
Accessed with
.....
if (MySetting1)

在这个例子中,我知道我的设置叫什么以及所有有趣的爵士乐。我仔细考虑了这些选项,并查看了 map 、无序 map 和 bool vector ……我只是在寻找最优化的做事方式。因为目前的方式......很好......在我看来它不是很干净。

enum myEnum
{
SETTING_NAME1 = 0,
SETTING_NAME2 = 0,
...
}
map<int,bool> myMap;

做myMap[SETTING_NAME1]的访问时间和现在的方法一样吗?是直接访问还是必须进行查找?

我只是想更新一下,让大家知道我采取的策略。

我用枚举来识别

enum myEnum
{
SETTING_NAME1 = 0,
SETTING_NAME2 = 1,
...
}

和 vector 来保存和调用数据

vector<bool> myVec;
if (myVec[SETTING_NAME1])

这应该让我直接访问,保持相对较小的大小(因为它是基于位的 vector )以及我想要的分离。

最佳答案

直接访问 bool 显然比通过 map 或其他任何方式访问它要快。 但是,这不太可能永远对性能至关重要,差异可以忽略不计。

如果这样的事情会干扰编写最清晰的代码,我建议您完全不要担心性能。担心这个是浪费时间和过早的优化没有收获。您能做的最好的是编写清晰易懂的代码,然后相信编译器优化器,并花时间优化性能关键区域的代码(当然,通过分析确定,而不仅仅是直觉/猜测)将产生实际的影响。

关于涉及 Bool 设置的 C++ 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39310533/

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