要求建议,c++新手

Require Suggestions, new to c++

本文关键字:c++ 新手      更新时间:2023-10-16

我需要创建一个数据结构,到目前为止,我已经创建了一个简单的表,由4个不同的向量表示变量。变量类型,bool结果和PKB输出。我知道这不是最好的方法,但我计划使用索引插入和检索。但是,我遇到了Query ID的问题,因为我希望使用getMethods来检索信息。我需要找到一种比通过索引更顺利地检索信息的方法。检索过程将按批量查询ID进行。

我是新来的Cplusplus,我不确定什么数据结构或如何解决它。我不期望得到直接的答复,但一个建议就足够了。这些名字我可能从没听过。如果你有一个循序渐进的指南就更好了。

——查询ID ----变量——变量类型——bool结果---- PKB输出

- 1 ------------------- x ----- 赋值 ----------- 真正的 ----------- 零------------------------------------------------- 1 ------------------- w ---------- 而 -------------- 假 ---------- 零------------------------------------------------- 1 ------------------ ifstat ----------- 如果 ------------- ---- 假 ---- ----- 零------------------------------------------------ 2 ------------------- x ------ 赋值 ----------- 假 ---------- 零 --------------------------------------------

根据我的理解阅读你的问题,你可以使用intstructstd::multimap。例如

// 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")));

我想我没有完全理解这个问题。但是我认为你使用的是包含vector的def的标准库,这意味着你必须使用该std的getter和setter。我将使用快速搜索算法创建一个函数,该算法使用vector中已经定义的getter。