用什么函数得到数组中的元素种类
时间: 2023-12-18 22:02:53 浏览: 33
在 C++ 中,可以使用 STL 中的 unordered_map 来实现哈希表,从而得到数组中的元素种类。具体实现可以参考下面的代码示例:
```c++
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 2, 1, 4, 5, 3};
int n = sizeof(arr) / sizeof(arr[0]);
unordered_map<int, int> mp;
for (int i = 0; i < n; i++) {
mp[arr[i]]++;
}
int cnt = 0;
for (auto it = mp.begin(); it != mp.end(); it++) {
cnt++;
}
cout << cnt << endl;
return 0;
}
```
上述代码中,首先定义了一个整型数组 arr 和一个整型变量 n,表示数组的长度。然后,使用 unordered_map 来记录每个元素出现的次数。遍历数组中的每个元素,如果该元素已经在 unordered_map 中,则将该元素对应的值加1;否则,在 unordered_map 中新增该元素,并将对应的值初始化为1。最后,遍历 unordered_map 中的每个键值对,统计键的数量即可得到数组中的元素种类。
相关问题
python中如何得到数组的元素种类
在 Python 中,可以使用 set() 函数获取数组的元素种类。set() 函数将数组转换为一个集合,由于集合中不能有重复的元素,因此最终集合的元素个数就是数组的元素种类数。以下是一个示例代码:
```python
arr = [1, 2, 3, 2, 1, 4, 5]
num_types = len(set(arr))
print(num_types) # 输出 5
```
在这个示例中,数组 arr 中有 7 个元素,但是只有 5 种不同的元素。我们使用 set() 函数将这些元素转换为集合,并使用 len() 函数获取集合的元素个数,即为数组的元素种类数,因此输出结果是 5。
js 限制数组当中元素的种类
在 JavaScript 中,可以使用类型检查和条件语句来限制数组中元素的种类。以下是一些示例代码,展示如何限制数组中只能包含特定类型的元素:
```javascript
// 创建一个只允许包含数字的数组
const numberArray = [];
function addNumberToArray(num) {
if (typeof num === "number") {
numberArray.push(num);
} else {
console.log("Invalid type. Only numbers are allowed.");
}
}
addNumberToArray(5);
addNumberToArray("hello"); // 输出:Invalid type. Only numbers are allowed.
console.log(numberArray); // 输出:[5]
// 创建一个只允许包含字符串的数组
const stringArray = [];
function addStringToArray(str) {
if (typeof str === "string") {
stringArray.push(str);
} else {
console.log("Invalid type. Only strings are allowed.");
}
}
addStringToArray("apple");
addStringToArray(10); // 输出:Invalid type. Only strings are allowed.
console.log(stringArray); // 输出:["apple"]
```
在上述示例中,我们分别创建了一个只允许包含数字的数组 `numberArray` 和一个只允许包含字符串的数组 `stringArray`。然后,我们定义了两个函数 `addNumberToArray` 和 `addStringToArray`,用于向相应的数组中添加元素。
在这两个函数中,我们使用 `typeof` 操作符来检查传入的参数类型。如果参数类型符合要求,就将其添加到数组中;否则,打印一条错误消息。
通过这种方式,我们可以限制数组中只能包含特定类型的元素。根据需求,你可以根据不同的规则和条件进行自定义限制。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)