如何使用C ++中的STL找到两个数组之间的共同元素

如何使用C ++中的STL找到两个数组之间的共同元素

给定两个数组,在C ++中使用STL找到这两个数组之间的公共元素。

示例:

输入:
arr1[] = {1, 45, 54, 71, 76, 12},
arr2[] = {1, 7, 5, 4, 6, 12}
输出: {1, 12}

输入:
arr1[] = { 1, 7, 5, 4, 6, 12 },
arr2[] = {10, 12, 11}
输出: {1, 4, 12}

方法:可以使用STL提供的 set_intersection() 函数找到公共元素。

语法:

set_intersection (InputIterator1 first1,InputIterator1 last1,
           InputIterator2 first2,InputIterator2 last2,
           OutputIterator result);
// C ++程序通过使用STL查找公共元素
//两个数组
      
#include
using namespace std;
      
int main()
{
     
      //获取数组
      int arr1 [] = {1,45,54,71,76,12};
      int arr2 [] = {1,7,5,4,6,12};
      
      //计算大小
      int n1 = sizeof(arr1)/ sizeof(arr1 [0]);
      int n2 = sizeof(arr2)/ sizeof(arr2 [0]);
      
      //对数组进行排序
      sort(arr1,arr1 + n1);
      sort(arr2,arr2 + n2);
      
      //打印数组
      cout <<“第一个数组:”;
      for(int i = 0; i < n1; i ++)
          cout << arr1 [i]<<“”;
      cout << endl;
      
      cout <<“第二个数组:”;
      for(int i = 0; i < n2; i ++)
          cout << arr2 [i]<<“”;
      cout << endl;
      
      //初始化向量
      //储存共同的值
      //和一个迭代器
      //遍历这个向量
      vector  v(n1 + n2);
      vector  :: iterator it,st;
      
      it = set_intersection(arr1,arr1 + n1,
                          arr2,arr2 + n2,
                          v.begin());
      
      cout <<“\ n共同元素:\ n”;
      for(st = v.begin(); st!= it; ++ st)
          cout << * st <<“,”;
      cout << '\ n';
      
      返回0;
}
第一个数组:1 12 45 54 71 76 
第二个数组:1 4 5 6 7 12 

共同元素:
1, 12,

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程