谁可以为我解释这个功能的最后一个论点?

时间:2011-10-12 18:42:45

标签: c++ pointers hash constructor

它是哈希的构造函数,但我不明白最后一个参数。它在做什么?

std::fill(hash_table_, hash_table_ + HASH_TABLE_SIZE, (node *)NULL)

你能以某种方式在for循环中执行此操作吗?

for (int i = 0; i < HASH_TABLE_SIZE; i++){
    //whatever that last argument is doing
    hash_table_++;
}

试图理解填充如何与哈希一起工作。谢谢!

3 个答案:

答案 0 :(得分:1)

该行用NULL填充哈希表。

是的,你也可以使用一个循环,但它更多的工作,更容易出错。

答案 1 :(得分:0)

它将整个哈希表设置为最后一个参数(NULL),其循环为:

for (int i = 0; i < HASH_TABLE_SIZE; i++)
{
    *(hash_table_ + i) = (node *)NULL;
}

答案 2 :(得分:0)

  

我不明白最后一个论点。它在做什么?

     

std :: fill(hash_table_,hash_table_ + HASH_TABLE_SIZE,(node *)NULL)

是否填充了一个哈希表,其NULL指针指向node

  

你能以某种方式在for循环中执行此操作吗?

for (int i = 0; i < HASH_TABLE_SIZE; i++){
    hash_table_[i] = (node*)NULL;
}