1
typedef char STR10[10+1];
typedef char STR20[20+1];

typdef struct Slot
{
    STR10 key;
    STR10 value;
};

const int MAX_SLOTS = 3;
const int MAX_BUCKETS = 30;

typedef struct Bucket
{

        short int count;
        short int overflow;
        Slot slots[MAX_SLOTS]; 
};

typedef Bucket HashTable[MAX_BUCKETS];

大多数情况下,我只是对最后一行的概念感到困惑。我知道我可以将结构更改为类,这很好,但最后一行对我来说很重要。它基本上是在说 HashTable 是一个桶数组。该代码是否足够好,或者有没有办法在 HashTable 类中表示它?

class HashTable 
{
private:
   Bucket table[MAX_BUCKETS];
}

那会代表同样的想法吗?我真的很难开始这样做。

4

1 回答 1

2

如果可以的话,我可以用std::string替换 char 数组,用std::vector替换Slot 数组,用枚举替换 define:

enum SlotSize
{
   MaxSlots = 3
};

enum BucketSize
{
    MaxBuckets = 30
};

struct Slot
{
    std::string key;
    std::string value;
};

struct Bucket
{

    int count;
    int overflow;
    std::vector<Slot> slots;
};

class HashTable 
{
private:
   std::vector<Bucket> table;
}
于 2013-01-30T00:30:48.687 回答