小编Miz*_*zor的帖子

在c ++中定义可容纳六个值的最小可能数据类型

我想定义自己的数据类型,它可以包含六个可能值中的一个,以便了解有关c ++内存管理的更多信息.在数字中,我希望能够保持0到5.二进制,只需要三位(101 = 5)即可,但有些(6和7)不会被使用.数据类型也应尽可能少地占用内存.

我不知道如何做到这一点.首先,我尝试了一个枚举,其中包含所有字段的已定义值.据我所知,这里的值是十六进制的,所以一个"hexbit"应该允许我存储0到15.但是将它与char(与sizeof)进行比较,它表示它是char的4倍大小,并且如果我没有误解,则char保持0到255.

#include <iostream>

enum Foo
{
    a = 0x0, 
    b = 0x1,
    c = 0x2,
    d = 0x3,
    e = 0x4,
    f = 0x5,
};

int main()
{
    Foo myfoo = a;
    char mychar = 'a';

    std::cout << sizeof(myfoo); // prints 4
    std::cout << sizeof(mychar); // prints 1

    return 1;
}
Run Code Online (Sandbox Code Playgroud)

我明显误解了一些事情,但没有看到什么,所以我转向了SO.:)

另外,在写这篇文章时,我意识到我显然缺少词汇的某些部分.我把这篇文章作为一个社区维基,请编辑它,这样我就可以学到正确的单词.

c++ memory binary hex memory-management

2
推荐指数
1
解决办法
7262
查看次数

具有未知状态的类似Astar的算法

A-star用于查找图中startnode和endnode之间的最短路径.使用什么算法来解决某些问题,目标状态并不是专门知道的,而是我们只有目标状态的标准

例如,可以用类似Astar的算法解决数独难题吗?我们不知道国家的样子(哪个数字在哪里),但我们知道数独的规则,一个获胜国家的标准.因此,我有一个startnode,只是endnode的标准,使用哪种算法?

language-agnostic algorithm a-star sudoku

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

RetryCancel MessageBox

System.Windows.MessageBox.Show()用来向用户显示一个对话框.一次重载让我可以设置使用System.Windows.MessageBoxButton枚举出现的按钮.但是,它似乎缺乏RetryCancel我的谷歌搜索表明它应该具有的选项.

  • 我错过了什么吗?
  • 如何显示RetryCancel消息框?

c# messagebox

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

找到combobox弹出窗口的所有者

我有一个弹出窗口,向用户显示设置.如果你点击它外面,它隐藏但如果你点击其中它仍然可见.

处理此行为的事件处理程序获取Component(被单击)并通过component.getParent()递归使用我可以检查它是否是我的设置面板的子项.到目前为止这已经奏效了.

但是我刚刚JComboBox在该面板中添加了一个,结果是"可选项弹出"(它有一个名字?)组合框在点击时显示的不是组合框的孩子.尝试在组合框中选择某些内容会隐藏我的设置面板.

使用NetBeans调试器我可以看到它的类型BasicComboPopup$1(是一个匿名类?),但它既不是ComboPopup,JPopupMenu也不是BasicComboPopup.

我需要一种方法来识别被点击的"组合框弹出窗口"的所有者/父组合框.

java swing awt jcombobox jpopup

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

使用C#打开包含其他扩展名的文件

我有.xml扩展名的文件.使用C#我必须用另一个扩展名打开文件,例如.exe.我可以手动打开"打开方式"选项打开文件.现在我必须使用C#做同样的事情.我怎么做?

c#

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