---
title: Find
description: "在查找表中查找输入张量的元素，并返回对应的值。"
url: https://www.hikunpeng.com/document/detail/zh/boostsra/srainference/SRA_Inference/kunpengsra_inference_16_0018.html
sourcePath: /source/zh/boostsra/srainference/SRA_Inference/kunpengsra_inference_16_0018.html
indexId: ff0d5dc5eb8d19cc6a1640a95970fd6c8a126c14abe5b9d9c2f9fa3ffbe83b4e80
---
# Find

#### 接口功能

在查找表中查找输入张量的元素，并返回对应的值。


#### 函数原型

```
int Find(const TableInfo &info, const int64_t *keys, float *values, const float *defaultValue, int64_t length);
```


- keys，length为int64_t类型。
- values，defaultValue为float类型。
- 指针有效空间由用户指定。
- 保证输入指针（包括结构体内部指针）的有效空间相互不重叠。


#### 参数说明

| 参数 | 输入/输出 | 说明 | 约束 |
| --- | --- | --- | --- |
| info | 输入 | 用于存储查找必要字段的结构体，包括： numBuckets：哈希桶个数 valueSize：embedding长度 emptyKey：空键所代表的值 deletedKey：已删除键所代表的值 keyBucket：已存储于哈希表的键 valueBucket：已存储于哈希表的值 | keyBucket，valueBucket不为空指针。 numBuckets的值为2的指数次幂，且大于0。 valueSize大于等于0。 TableInfo.emptyKey与TableInfo.deletedKey的值须不同。 keyBucket限制： 初始时，keyBucket上的每个key均为emptyKey。用户需保障这一点，防止接口无法正常运行。 任何时候keyBucket至少有一个key是emptyKey（始终有空桶可用），用户需保障这一点，防止接口无法正常运行。 如果一个key存在于keyBucket中，通过key%numBuckets获取其在keyBucket中的索引，并使用二次探测法，在遇到emptyKey之前一定能够找到该key本身，用户需保障这一点，防止接口无法正常运行。 keyBucket中存放的数据符合TensorFlow 1.15中MutableDenseHashTable的数据排列方式。 keyBucket指向的空间至少有numBuckets\*sizeof(int64\_t) Byte，用户需保障这一点，防止接口无法正常运行。 valueBucket限制 valueBucket指向的空间至少有numBuckets\*valueSize\*sizeof(float) Byte，用户需保障这一点，防止接口无法正常运行。 |
| keys | 输入 | 用于查找的键。 | 指针不为空，数组不含有emptyKey、deletedKey。 |
| values | 输入 | 用于查找的值，存储找到的值，作为输出。 | 指针不为空。 |
| defaultValue | 输入 | 若未查找到key对应的value，则插入defaultValue作为key的value。 | 指针不为空。 |
| length | 输入 | 要查询的key数量。 | 取值范围(0,2^63\-1]，length与keys长度相同，用户需保障这一点，防止缓冲区溢出等安全问题。 |
