第11章 set集合容器

/*

第11章 set集合容器
   11.1 set技术原理
   11.2 set应用基础
   11.3 本章小结

*/

//第11章 set集合容器
//   11.1 set技术原理 ---------------------------------------------------------------------------------------------------

//   11.2 set应用基础 ---------------------------------------------------------------------------------------------------

//184 中序遍历
#include <set>
#include <iostream>
int main(void)
{
  using namespace std;
  set < int > s;
  s.insert(10);
  s.insert(15);
  s.insert(11);
  s.insert(17);
  s.insert(13);
  s.insert(19);
  s.insert(19); //不会重复插入
  //打印二叉树的数据
  set < int > ::iterator i, iend;
  iend = s.end();
  for(i = s.begin(); i != iend; i++)
    cout <<  *i << ‘ ‘;
  cout << endl;
  return 0;
}

// 185 reverse_iterator
#include <set>
#include <iostream>
int main(void)
{
  using namespace std;
  set < int > s;
  s.insert(10);
  s.insert(15);
  s.insert(11);
  s.insert(17);
  s.insert(13);
  s.insert(19);
  s.insert(19); //不会重复插入
  //打印二叉树的数据
  set < int > ::reverse_iterator ri, riend;
  riend = s.rend();
  for(ri = s.rbegin(); ri != riend; ri++)
    cout <<  *ri << ‘ ‘;
  cout << endl;
  return 0;
}

// 185 , find
#include <set>
#include <iostream>
int main(void)
{
  using namespace std;
  set < int > s;
  s.insert(10);
  s.insert(15);
  s.insert(11);
  s.insert(17);
  s.insert(13);
  s.insert(19);
  //搜索元素13
  int v = 13;
  set < int > ::iterator i_v = s.find(v);
  cout <<  *i_v << endl;
  //搜索不存在的元素60
  v = 60;
  i_v = s.find(v);
  if(i_v != s.end())
    cout <<  *i_v << endl;
  return 0;
}

// 186
#include <set>
#include <iostream>
int main(void)
{
  using namespace std;
  set < int > s;
  s.insert(5);
  s.insert(6);
  s.insert(7);
  s.insert(8);
  s.insert(9);
  //
  if(s.empty())
    cout << "set容器为空" << endl;
  else
    cout << "set容器元素个数为" << s.size() << endl;
  return 0;
}

//   11.3 本章小结 ---------------------------------------------------------------------------------------------------

TOP

时间: 2024-10-06 04:15:17

第11章 set集合容器的相关文章

第12章 multiset多重集合容器

/* 第12章 multiset多重集合容器 12.1 multiset技术原理 12.2 multiset应用基础 12.3 本章小结 */ // 第12章 multiset多重集合容器 // 12.1 multiset技术原理 ---------------------------------------------------------------------------- // 12.2 multiset应用基础 ------------------------------------

第15章 hash_set哈希集合容器

/* 第15章 hash_set哈希集合容器   15.1 hash_set技术原理   15.2 hash_set应用基础   15.3 本章小结 略 */

C++ Primer学习总结 第11章 关联容器

第11章 关联容器 1.    使用map的简单例子: 运行结果为: 2.    初始化map和set: 3.    set与multiset的区别: 4.    使用map和set时,其元素类型必须是定义了严格弱序的(即定义了<号比较的),如果元素类型没有定义<号操作也可以通过外部函数来比较: 5.    pair类型:pair是一个用来生成特定类型的模板. pair的默认构造函数对数据成员进行值初始化. 6.    遍历map和set关联容器: 7.    如何往set和map中添加指定元

C++ Primer 读书笔记:第11章 泛型算法

第11章 泛型算法 1.概述 泛型算法依赖于迭代器,而不是依赖容器,需要指定作用的区间,即[开始,结束),表示的区间,如上所示 此外还需要元素是可比的,如果元素本身是不可比的,那么可以自己定义比较函数. 2.常用的泛型算法函数: fill,fill_n, copy, replace, sort, unique, count_if, stable_sort 此外在有一个谓词函数会结合以上的函数使用,像sort, count_if等 3.再谈迭代器 (1)插入迭代器 back_inserter, f

set集合容器

近期学习了STL中set的使用,在此写一点点总结和自己的一些体悟. set集合容器实现了红黑树(Red-Black Tree)的平衡二叉检索树的的数据结构,在插入元素时,它会自动调整二叉树的排列,把该元素放到适当的位置,以确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值:另外,还得确保根节点的左子树的高度与有字数的高度相等,这样,二叉树的高度最小,从而检索速度最快.要注意的是,它不会重复插入相同键值的元素,而采取忽略处理. 平衡二叉检索树的检索使用中序遍历算法,检索效

第11章 Tomcat的系统架构与设计模式

11.1 Tomcat总体设计 11.1.1 Tomcat总体架构 Tomcat和核心有连个组件:Connector和Container,Connector是可以被替换的.一个container可以有多个connector,多个connector和一个container形成一个service,service的生存环境就是server.所以Tomcat的声明周期由Server控制. 1. 以Service作为"婚姻" Connector负责对外交流,container主要处理connec

2017.2.21 activiti实战--第七章--Activiti与容器集成

学习资料:<Activiti实战> 第七章 Activiti与容器集成 本章讲解activiti-spring可以做的事情,如何与现有系统集成,包含bean的注入.统一事务管理等. 7.1 流程引擎工厂 7.1.1 ProcessEngine 创建processEngine的方法有三种: 1 通过配置文件 2 测试中通过ActivitiRule 3 通过ProcessEngines类 7.1.2 ProcessEngineFactory 与spring集成的目的有两个: 1 通过spring统

统计学习方法 李航---第11章 条件随机场

第11章 条件随机场 条件随机场(conditional random field, CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场.条件随机场可以用于不同的预测问题,本章主要讲述线性链(linear chain)条件随机场在标注问题的应用,这时问题变成了由输入序列对输出序列预测的判别模型,形式为对数线性模型,其学习方法通常是极大似然估计或正则化的极大似然估计. 11.1 概率无向图模型 概率无向图模型(probabilist

multiset多重集合容器

跟set集合容器相比,multiset多重集合容器也使用红黑树组织元素,仅仅是multiset多重集合容器同意将反复的元素键值插入.元素的搜索依旧具有对数级的算法时间复杂度,find和equal_range函数能够搜索出某一键值下的全部元素位置. 创建multiset对象 有下面几种方式. (1)    multiset() multiset<int> ms; (2)    multiset(constkey_compare&cmp) //student结构体 structstuden