将一个数组内相同的数据存入同一个容器
时间: 2024-10-08 17:06:22 浏览: 24
C++一维数组二维数组写入txt,从txt中读取数据存到一维数组二维数组
5星 · 资源好评率100%
将数组内的相同数据存储到同一个容器中,通常需要遍历数组并使用某种算法或数据结构来跟踪已知的不同值。这里可以使用多种方法,取决于具体的需求和可用的工具,例如:
1. **集合(Set)**:如果你关心唯一性和无序性,可以使用C++ STL中的`std::set`或`std::unordered_set`。它们自动去重,并保持元素的顺序(对于有序集合)或插入顺序(无序集合)。
```cpp
std::vector<int> array = {1, 2, 2, 3, 4, 4, 4};
std::set<int> uniqueValues;
for (int value : array) {
uniqueValues.insert(value);
}
```
2. **哈希表(Hash Table)**:如果数据量大且需要快速查找,可以使用哈希表,如C++的`std::unordered_map`或自定义的`std::unordered_set`,通过键值对的形式存储,键是数组中的元素,值的数量表示该元素在原数组中出现的次数。
3. **映射(Map)**:类似地,也可以用`std::map`(关联数组)或`std::unordered_map`,其中键是值,值是计数。
```cpp
std::map<int, int> counts;
for (int value : array) {
++counts[value];
}
```
4. **自定义容器**:还可以编写一个自定义容器,例如`std::multiset`或`std::multimap`,用于存储每个元素及其对应的频次。
以上每种方法都有其适用场景,选择时要考虑数据的特点以及操作的效率需求。
阅读全文