我需要创建一个数据结构,到目前为止我创建了一个简单的表,由4个不同的向量组成,代表变量。变量类型,bool结果和PKB输出。我知道这不是最好的方法,但我打算使用索引插入和检索。但是,我遇到了查询ID的问题,因为我希望使用getMethods来检索信息。我需要找到一种比通过索引运行更顺利地检索信息的方法。检索过程将按批次查询ID。
我是Cplusplus的新手,我不确定是什么数据结构或我如何解决它。我不期待直接回答,但建议就足够了。我以前可能从未听过的名字。如果你有一步一步的指南,那将是最好的。
---查询ID ----变量---变量类型--- bool结果---- PKB输出
---- 1 ------------------- x -----赋值-----------真---- - - - - 空值 ------------------------------------------------- 1 ------------------- w ----------而-------------- false ---- - - - 空值 ------------------------------------------------- 1 ------------------ ifstat ----------- if ------------- ---- false - - - - - - 空值 ------------------------------------------------ 2 - ------------------ x ------赋值----------- false ---------- null - -------------------------------------------
答案 0 :(得分:1)
根据我的理解阅读您的问题,您可以使用std::multimap
使用int
和struct
。例如
// C++11 for nullptr
#include <string>
#include <map>
struct Data {
std::string variable;
std::string variableType;
bool result;
PKB output; // I suppose PKB is an already defined type
Data(std::string var, std::string varType, bool res = false, PKB out = nullptr) :
variable(var), variableType(varType), result(res), output(out) {}
inline bool operator <(const Data & rhs) {
. . . // Add your own comparison logic
}
};
std::multimap<int, Data> myMap;
myMap.insert((1, Data("x", "assignment", true)));
myMap.insert((1, Data("w", "while")));
myMap.insert((1, Data("ifstat", "if")));
myMap.insert((2, Data("x", "assignment")));
答案 1 :(得分:0)
我认为我完全不理解这个问题。但我认为你使用包含向量def的标准库,这意味着你必须使用该std的getter和setter。我只是使用快速搜索算法来创建一个函数,该算法使用已在向量中定义的getter。