21xrx.com
2024-12-22 20:46:11 Sunday
登录
文章检索 我的文章 写文章
如何在C++中输出两个容器中相同的元素?
2023-07-11 14:23:18 深夜i     --     --
C++ 输出 容器 相同元素

在C++中,容器是常用的数据结构之一,常见的容器包括vector、list、set、map等。有时我们需要将两个容器中相同的元素进行输出,下面将介绍如何实现这个功能。

首先,我们需要先定义两个容器,并向它们中分别添加一些元素。这里以vector和set作为例子来进行说明。


vector<int> vec 9;

set<int> s 10;

接下来,我们可以使用STL中的算法std::set_intersection()来实现两个容器求交集的操作。该算法用于求两个有序容器的交集,并将结果存储在一个目标容器中。由于set已经默认是有序的,因此可以直接使用该算法。而对于vector这类无序容器,则需要先调用std::sort()对其进行排序操作。

下面是具体的代码实现:


// 对vector进行排序

sort(vec.begin(), vec.end());

// 用于存储交集的容器

vector<int> intersect(vec.size() + s.size());

// 获取两个容器的交集

auto it = set_intersection(vec.begin(), vec.end(), s.begin(), s.end(), intersect.begin());

// 输出交集结果

cout << "The intersection is: ";

for (auto i = intersect.begin(); i != it; ++i) {

  cout << *i << " ";

}

cout << endl;

其中,std::set_intersection()的参数分别是两个输入容器的起始位置、结束位置,以及存储结果的目标容器的起始位置。

最后,运行上述程序,得到输出结果如下:


The intersection is:

显然,由于这两个容器没有相同的元素,因此输出为空。当然,如果我们将容器中的元素进行调整,那么就可以得到不同的输出结果。

综上所述,通过使用STL中的std::set_intersection()算法,我们可以轻松地实现两个容器求交集,并输出结果。该方法适用于任何STL容器,不仅简单方便,而且具有很高的可复用性。

  
  

评论区

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