在MFC中实现一个布尔表结构
Implementing a boolean table like structure in MFC
我想实现一个结构,几乎像布尔表,在我的MFC应用程序。行索引和列索引将是字符串列表,并且在两个轴上是相同的。而且我一开始也不知道尺寸。例子:
Table[string1][string1]=0
Table[string1][string2]=0
Table[string1][string3]=1
Table[string1][string4]=1
Table[string2][string1]=1
Table[string2][string2]=0
Table[string2][string3]=0
Table[string2][string4]=1
等等…
在MFC中实现这种结构的最佳方法是什么?2 d向量?如果是,那又是怎样的呢?最省力:
#include <map>
#include <iostream>
typedef std::map<std::string, std::map<std::string, bool>> relation;
int main()
{
relation r;
r["string1"]["string1"] = false;
r["string1"]["string2"] = true;
std::cout << r["string1"]["string1"] << " "
<< r["string1"]["string2"] << " "
<< r["string1"]["string3"] << std::endl;
return 0;
}
请考虑未初始化的一对字符串的默认值是false
(例如r["string1"]["string3"] == false
)。
std::pair
。它可能更快,但语法略有不同。
根据您的需求,映射/嵌套映射数据结构可能空间效率低下或太慢。
相关文章:
- 检查注册表项是否链接到(或副本)另一个注册表项
- 如何在 c++ 中比较 2 个链表并将匹配的数据放入另一个链表中
- 创建了一个链表,但如何删除 c++ 中的"所有"节点
- C++:如何做一个链表,结构作为参数传递?
- 程序的输出不是来的,它是一个链表程序
- 我正在尝试创建一个布尔函数,该函数计算字符并在字符为"()*-+"时返回 true
- C++创建一个链表,每个节点有超过 2 个字段
- 将 2 个链表中包含的相同值写入另一个链表
- 如何将变量从一个 qt 表单传递到另一个表单 qt 形式
- 创建一个链表,每个节点指向另一个链表
- 另一个布尔函数中的一个字符
- 只是粘在此代码中,我必须创建一个数学表
- C++11/ 自动给我分配一个布尔值
- C++-将链表(A)插入另一个链表(B)的位置n
- 正在读取一个布尔原子以及它需要多少个周期
- 如何将一个链表插入另一个链表后面
- 为什么当我制作一个链表时,我的电脑会崩溃
- 如何在C++中创建一个链表向量
- 假设一个"布尔"数组,'a[n] == (-1)'真的吗?
- 在MFC中实现一个布尔表结构