`
raojl
  • 浏览: 208960 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

std::set得交集应用[笔记]

阅读更多
1、比如一些电话号码比较,如果文件比较大考虑插桩!
2、时间段重叠运算。
3、数据变化处理。
#include "stdafx.h"
#include <set>
#include <string>
#include <algorithm>
#include <iostream>

using namespace std;

struct compare
{
	bool operator ()(string s1,string s2)
	{
	   return s1 > s2;
	}///自定义一个仿函数
};
int main()
{
	typedef std::set<string,compare> _SET;
	_SET s;
	s.insert(string("sfdsfd"));
	s.insert(string("apple"));
	s.insert(string("english"));
	s.insert(string("dstd"));
	cout<<"s1:"<<endl;
	std::set<string,compare>::iterator it = s.begin();
	while(it!=s.end())
	   cout<<*it++<<"   ";
	cout<<endl<<"s2:"<<endl;
	_SET s2;
	s2.insert(string("abc"));
	s2.insert(string("apple"));
	s2.insert(string("english"));
	it = s2.begin();
	while(it!=s2.end())
	   cout<<*it++<<" ";
	cout<<endl<<endl;

	string str[10];
	string *end = set_intersection(s.begin(),s.end(),s2.begin(),s2.end(),str,compare());
	cout<<"result of set_intersection s1 <> s2:"<<endl;
	string *first = str;
	while(first<end)
    cout <<*first++<<" ";
	cout <<endl;
}
分享到:
评论

相关推荐

    C++标准库:std_set作为一个有序集合

    std::set的应用场景: * 数学计算:std::set可以用于数学计算中,例如计算集合的交、并、差等操作。 * 数据处理:std::set可以用于数据处理中,例如对数据进行排序、去重等操作。 * 算法实现:std::set可以用于算法...

    std::List类的遍历获得元素的操作二法

    在C++标准库中,`std::list`是一种双链表容器,它提供了一种高效的方式来存储和操作序列数据。由于`std::list`不是随机访问容器,因此它不支持像数组那样的通过索引直接访问元素(如`[]`运算符)。但是,`std::list`...

    通过c++11的std::bind及std::function实现类方法回调,模拟Qt实现信号槽

    c++11引入了std::bind及std::function,实现了函数的存储和绑定,即先将可调用的对象保存起来,在需要的时候再调用。定义了SignalObject信号类和SlotObject槽类,其中信号类中的 std::function(int)&gt; _call就是要...

    std::string format格式化函数源代码及两种格式化方法

    在C++编程中,`std::string`是一个非常重要的数据类型,用于处理字符串。而`format`函数通常指的是用于格式化输出的工具,类似于C语言中的`printf`或C++的`std::stringstream`。本项目提供的`std::string format`...

    MFC,C++,C语言 json转换成std::map源码,无需编译,无需关心引用位置,直接引用即可使用

    std::map&lt;std::string, std::string&gt; mapData = json.parseJson(jsonString); // 现在可以访问mapData中的数据 std::cout &lt;&lt; "Name: " ["name"] &lt;&lt; std::endl; std::cout &lt;&lt; "Age: " ["age"] &lt;&lt; std::endl; ...

    c++中hash_table以及std::map应用案例

    代码重点是hash_table,附加std::map与其做对比,实现的是一条sql语句:select c_nationkey, c_mktsegment, count(*), max(c_acctbal) from aaa_customer_1g group by c_nationkey, c_mktsegment order by c_...

    std::vector排序详解

    当应用于`std::vector`时,它可以有效地对向量的元素进行升序或降序排列。默认情况下,`std::sort`按照元素的自然顺序进行排序,即对于整型或浮点型,它是从小到大;对于自定义类型,它依赖于元素的`运算符。 然而...

    std::string、char*、const char*转托管byte数组或托管字符串String

    std::string、char*、const char*转托管byte数组或托管字符串String std::string、char*、const char*是C++中三个不同的字符串表示方式,它们都可以转换为托管的byte数组或字符串String,但是在C++/CLI中,它们的...

    std::vector类模板

    使用C++类模板实现的std::vector容器。 对于学习动态数组有很大的帮助。

    C++11 future中std::promise 介绍

    2. **设置值**: 你可以使用 `set_value()` 函数将一个值存储到 `std::promise` 的共享状态中。一旦值被设置,与之关联的 `std::future` 就可以获取这个值。如果值已经被设置,再次调用 `set_value()` 会导致未定义...

    C++ 11 std::function和std::bind使用详解

    C++ 11 std::function和std::bind使用详解 C++ 11 中引入了两个重要的功能:std::function 和 std::bind,它们都是基于 C++ 11 的新特性,用于实现函数指针的功能。下面将详细介绍这两个功能的使用和区别。 std::...

    cmake 、代理模式与pimpl模式混用实例、std::move、std::forward()应用

    `std::move`和`std::forward`是C++11引入的高效资源管理工具,用于提升性能,特别是处理移动语义和转发引用。现在,我们将详细探讨这些知识点。 首先,`cmake`是一个开源的,跨平台的自动化构建系统,用来管理项目...

    在C++中,使用文件流(std::ifstream 和 std::ofstream)可以方便地读取和写入文本文件 下面是一些示例

    ### 使用C++中的文件流(std::ifstream 和 std::ofstream)进行文本文件操作 #### 一、概述 在C++编程语言中,处理文件输入输出是常见需求之一。`std::ifstream` 和 `std::ofstream` 是标准库提供的类模板,它们...

    std::list 使用

    linux 下 std::list的使用

    求两集合的交集 求两个集合的交集

    在C++中,我们可以使用内置的`std::set_intersection`函数来找到两个集合的交集。这个函数位于 `&lt;algorithm&gt;` 头文件中,它接受四个参数:两个输入迭代器指向第一个集合的起始和结束位置,以及两个输出迭代器,表示...

    书中的 std::thread

    在C++标准库中,`std::thread`是用于实现多线程编程的关键组件。它允许程序员在同一程序中创建并运行多个并发执行的线程。`std::thread`的使用通常涉及以下几个方面: 1. **线程创建**:创建一个新线程最简单的方式...

    深入研究std_deque.doc

    `std::deque`(双端队列)作为C++标准模板库(STL)中的一个重要容器,因其独特的优势而在某些应用场景下优于其他容器如`std::vector`。本文将对`std::deque`进行深入剖析,探讨其内存管理和性能特性,并通过对比`std:...

    将Windows字符串资源加载到std :: string或std :: wstring中

    本文将详细介绍如何使用C++语言将Windows字符串资源加载到`std::string`或`std::wstring`中,以便在程序中使用。 首先,了解`std::string`和`std::wstring`。`std::string`是C++标准库中的一个类模板,用于处理...

    C++11中lambda、std::function和std:bind详解

    这篇文主要关注三个核心概念:lambda表达式、std::function和std::bind。 **Lambda表达式**是C++11引入的一种内联匿名函数,它允许我们在需要的地方直接定义函数对象,而无需单独声明一个函数。Lambda表达式的语法...

    C++11中多线程编程-std::async的深入讲解

    std::async提供了灵活的线程创建策略,并且返回一个std::future对象,使得获取线程函数的结果变得简单。 1. std::async函数原型: std::async有两个重载形式,主要区别在于是否指定了执行策略。第一个版本默认使用...

Global site tag (gtag.js) - Google Analytics