gpt4 book ai didi

c++ - 实现字符串映射

转载 作者:行者123 更新时间:2023-11-28 03:51:50 25 4
gpt4 key购买 nike

我必须使用二叉搜索树实现一个行为类似于字符串映射的类。这是我实现的类:

template<class T>
class StringMapper {
private:
// Pair
struct Pair {
std::string el1;
T el2;
};

// Nod
struct Node {
Pair* data;
Node* left;
Node* right;
Node()
{
data = new Pair;
}
~Node()
{
delete data;
}
int nod_size()
{
// code here
}
};
Node* root;
public:
StringMapper()
{
root = 0;
}
~StringMapper() {}
void insert(std::string from, const T& to)
{
// code here
}

bool find(std::string from,const T& to) const
{
return find(root, to);
}

bool find(Node* node, const T& value) const
{
// code here
}

bool getFirstPair(std::string& from, T& to)
{
if(root != 0)
{
from = root->data->el1;
to = root->data->el2;
return true;
}
return false;
}
bool getNextPair(std::string& from, T& to)
{
if(root != 0)
{

}
return false;
}

int size() const
{
return root->nod_size();
}
};

老实说,我不知道如何实现函数 getNextPair()
如果有人可以帮助我,我将不胜感激。

最佳答案

您的界面是一个内部迭代器。您需要保留某种指向迭代中所处位置的指针,并将其设置在 getFirstPair() 中。

一旦你添加了这个,getNextPair() 就会转到下一个。做这件事有点困难,但这是你的任务,所以我把它留给你。

实际的 std::map 使用外部迭代器——它使迭代的状态与数据结构分开。主要优点是能够同时进行多个迭代。

关于c++ - 实现字符串映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5213445/

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