这个数组如何初始化为零?

时间:2015-06-11 15:56:20

标签: c

二进制哈希映射到底是如何工作的?如何,它如何仅将binMap[elements in arr]初始化为1,其余为0

#include <stdio.h>
#define MAX 100000

void printPairs(int arr[], int arr_size, int sum)
{
  int i, temp;
  bool binMap[MAX] = {0}; /*initialize hash map as 0*/

  for(i = 0; i < arr_size; i++)
  {
    temp = sum - arr[i];
    if(temp >= 0 && binMap[temp] == 1)
    {
      printf("Pair with given sum %d is (%d, %d) \n", sum, arr[i], temp);
    }
    binMap[arr[i]] = 1;
  }
}

int main()
{
    int A[] = {1, 4, 45, 6, 10, 8};
    int n = 16;
    int arr_size = 6;

    printPairs(A, arr_size, n);

    getchar();
    return 0;
}

1 个答案:

答案 0 :(得分:1)

  

如何将binMap [arr]中的元素初始化为1和1   休息到0?

有了这个

bool binMap[MAX] = {0};

数组binMap数组中的每个元素都初始化为0(实际上它只将binMap[0]设置为0,但由于C中的隐式初始化,其余部分首先将元素设置为0

然后在循环中,

binMap[arr[i]] = 1;

arr元素给出的索引设置为1.例如,如果arr[i]45,则binMap[45]设置为1