21xrx.com
2025-04-05 04:47:13 Saturday
文章检索 我的文章 写文章
C++中如何去重字符串数组
2023-07-12 10:36:51 深夜i     18     0
C++ 去重 字符串数组

在C++中,去重字符串数组可以使用STL中的set容器来实现。set是一个集合,即其中的元素都是独一无二的,而且按照特定的顺序排列。

下面是一个示例代码,通过set去重字符串数组:

#include <iostream>
#include <set>
#include <string>
using namespace std;
int main(){
  string arr[] = "apple";
  int n = sizeof(arr) / sizeof(string);
  set<string> mySet(arr, arr + n);
  for(auto itr = mySet.begin(); itr != mySet.end(); ++itr){
    cout << *itr << " ";
  }
  return 0;
}

运行结果为:apple banana grape orange

首先声明一个字符串数组arr,利用sizeof运算符计算数组元素个数n,然后将数组传入set中,最后通过迭代器遍历输出set中的元素,即去重后的字符串数组。

此外,还可以使用unordered_set容器来去重。unordered_set是一个哈希表,虽然元素无序,但是插入和查找所需的时间是O(1),会比set快一些。

示例代码如下:

#include <iostream>
#include <unordered_set>
#include <string>
using namespace std;
int main(){
  string arr[] = "orange";
  int n = sizeof(arr) / sizeof(string);
  unordered_set<string> mySet(arr, arr + n);
  for(auto itr = mySet.begin(); itr != mySet.end(); ++itr){
    cout << *itr << " ";
  }
  return 0;
}

运行结果同样为:apple banana grape orange

综上所述,C++中去重字符串数组可以使用set或unordered_set容器来实现,这两个容器都可以达到去重的效果。选择使用哪个容器,可以根据对程序效率和实际需求的权衡来决定。

  
  

评论区

请求出错了