21xrx.com
2024-12-23 03:01:32 Monday
登录
文章检索 我的文章 写文章
C++中如何去重字符串数组
2023-07-12 10:36:51 深夜i     --     --
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容器来实现,这两个容器都可以达到去重的效果。选择使用哪个容器,可以根据对程序效率和实际需求的权衡来决定。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复