`
raojl
  • 浏览: 209653 次
  • 性别: 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`...

    C++ 中 std::tuple 与 std::pair 的全面解析与应用实践

    std::tuple,阐述其相较于 std::pair 的更广泛通用性,如可容纳多个不同类型元素的特性、元素访问的独特方法(如 std::get 函数和 std::tie 函数的运用)以及在复杂数据结构组织和函数返回多值场景中的实际应用。...

    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`按照元素的自然顺序进行排序,即对于整型或浮点型,它是从小到大;对于自定义类型,它依赖于元素的`运算符。 然而...

    C++ 中 std::optional 与 std::expected 的深度辨析

    std::optional和std::expected都是 C++ 中非常有用的类型,它们在处理可能不存在的值以及错误情况时提供了更优雅和安全的方式。std::optional侧重于值的存在性,而std::expected侧重于错误信息的传递和处理。在实际...

    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++并发编程:`std::async`与`std::thread`的对比与应用

    std::async和std::thread提供了两种不同的并发编程模型。std::async更适合于需要异步执行任务并获取结果的场景,而std::thread提供了更直接的线程控制方式。理解它们的工作原理和使用场景对于编写高效、可靠的并发...

    C++中的`std::move`与`std::forward`:完美转发与移动语义的精髓

    std::move和std::forward是C++中处理左值和右值的强大工具。理解它们的区别和用途对于编写高效、可维护的C++代码至关重要。通过本文的详细解释和代码示例,读者应该能够更好地掌握这两个函数的使用方法,并在实际...

    C++ 智能指针家族中的黄金搭档:std::shared-ptr 与 std::weak-ptr 协同工作机制全解析

    std::shared_ptr 和 std::weak_ptr 在 C++ 的内存管理和对象生命周期控制方面发挥着重要作用。std::shared_ptr 通过引用计数实现了对象所有权的共享,使得多个智能指针可以安全地指向同一个对象,并且在最后一个引用...

    C++ 容器大比拼:std::array与std::vector深度解析

    本文聚焦于 C++ 标准库中的两个重要容器 ——std::array和std::vector。首先介绍容器在 C++ 编程中的重要地位以及它们出现的背景,阐述两者在内存布局、大小固定性、性能特点、元素访问方式等方面的关键区别。通过...

    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::...

    C++ 智能指针辅助利器:std::make-unique与std::make-shared深度剖析

    详细讲解std::make_unique和std::make_shared的功能、用法、返回值类型以及它们在内存管理、异常安全等方面的优势,并通过丰富的代码示例展示其实际应用场景,包括对象创建、资源管理、函数参数传递等。深入分析两者...

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

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

    C++ 并发编程之锁的艺术:std::lock-guard与std::unique-lock深度解析

    本文深入探讨 C++ 标准库中用于并发编程的两个重要锁类 ——std::lock_guard和std::unique_lock。首先介绍多线程并发编程中资源竞争与同步的背景知识,阐述互斥锁在保护共享资源方面的重要性。详细讲解std::lock_...

Global site tag (gtag.js) - Google Analytics