C++ STL (备忘)

2014-08-04 16:33:57

(1)  map 

  map定义形式

    map<type1,type2> map_name;

  map的基本操作函数:
      C++ Maps是一种关联式容器,包含“关键字/值”对
      begin()          返回指向map头部的迭代器
      clear()         删除所有元素
      count()          返回指定元素出现的次数
      empty()          如果map为空则返回true
      end()            返回指向map末尾的迭代器
      equal_range()    返回特殊条目的迭代器对
      erase()          删除一个元素
      find()           查找一个元素
      get_allocator()  返回map的配置器
      insert()         插入元素
      key_comp()       返回比较元素key的函数
      lower_bound()    返回键值>=给定元素的第一个位置
      max_size()       返回可以容纳的最大元素个数
      rbegin()         返回一个指向map尾部的逆向迭代器
      rend()           返回一个指向map头部的逆向迭代器
      size()           返回map中元素的个数
      swap()            交换两个map
      upper_bound()     返回键值>给定元素的第一个位置
      value_comp()      返回比较元素value的函数

(2)set 

  set定义形式:

    set<type> set_name;

  set的基本操作:

  begin()         返回指向第一个元素的迭代器

  clear()         清除所有元素

  count()         返回某个值元素的个数

  empty()         如果集合为空,返回true

  end()           返回指向最后一个元素的迭代器

  equal_range()   返回集合中与给定值相等的上下限的两个迭代器

  erase()         删除集合中的元素

  find()          返回一个指向被查找到元素的迭代器

  get_allocator() 返回集合的分配器

  insert()        在集合中插入元素

  lower_bound()   返回指向大于(或等于)某值的第一个元素的迭代器

  key_comp()      返回一个用于元素间值比较的函数

  max_size()      返回集合能容纳的元素的最大限值

  rbegin()        返回指向集合中最后一个元素的反向迭代器

  rend()          返回指向集合中第一个元素的反向迭代器

  size()          集合中元素的数目

  swap()          交换两个集合变量

  upper_bound()   返回大于某个值元素的迭代器

  value_comp()    返回一个用于比较元素间的值的函数

(3)bitset

  bitset 用法整理  
  构造函数
  bitset<n> b; 
  b有n位,每位都为0.参数n可以为一个表达式.
  如bitset<5> b0;则"b0"为"00000";

  bitset<n> b(unsigned long u);
  b有n位,并用u赋值;如果u超过n位,则顶端被截除
  如:bitset<5>b0(5);则"b0"为"00101";

  bitset<n> b(string s);
  b是string对象s中含有的位串的副本
  string bitval ( "10011" );
  bitset<5> b0 ( bitval4 );
  则"b0"为"10011";

  bitset<n> b(s, pos);
  b是s中从位置pos开始位的副本,前面的多余位自动填充0;
  string bitval ("01011010");
  bitset<10> b0 ( bitval5, 3 );
  则"b0" 为 "0000011010";

  bitset<n> b(s, pos, num);
  b是s中从位置pos开始的num个位的副本,如果num<n,则前面的空位自动填充0;
  string bitval ("11110011011");
  bitset<6> b0 ( bitval5, 3, 6 );
  则"b0" 为 "100110";

  os << b
  把b中的位集输出到os流
  os >>b 
  输入到b中,如"cin>>b",如果输入的不是0或1的字符,只取该字符前面的二进制位.

  bool any( ) 
  是否存在置为1的二进制位?和none()相反

  bool none( ) 
  是否不存在置为1的二进制位,即全部为0?和any()相反.

  size_t count( )
  二进制位为1的个数.

  size_t size( )
  二进制位的个数

  flip()
  把所有二进制位逐位取反

  flip(size_t pos)
  把在pos处的二进制位取反

  bool operator[]( size_type _Pos )
  获取在pos处的二进制位

  set()
  把所有二进制位都置为1

  set(pos)
  把在pos处的二进制位置为1

  reset()
  把所有二进制位都置为0

  reset(pos)
  把在pos处的二进制位置为0

  test(size_t pos)
  在pos处的二进制位是否为1?
  
  unsigned long to_ulong( )
  用同样的二进制位返回一个unsigned long值

  string to_string ()
  返回对应的字符串.

(4)lower_bound()与upper_bound()函数

  (i)lower_bound(头地址,尾地址+1,value)- 头地址 = 第一个>=val的元素地址

  (ii)upper_bound(头地址,尾地址+1,value)-头地址 = 第一个> val的元素地址

  注意:元素地址可以处于越界状态。

(5)fill() 函数

  1)fill函数的作用是:将一个区间的元素都赋予val值。函数参数:

  fill(first,last,val);//first为容器的首迭代器,last为容器的末迭代器,val为将要替换的值。

  2)fill_n函数的作用是:给你一个起始点,然后再给你一个数值count和val。把从起始点开始依次赋予count个元素val的值。例:

fill_n(x + , m, pii(, ));
上一篇:[bzoj2743][HEOI2012]采花_树状数组


下一篇:【BZOJ2743】[HEOI2012]采花 离线+树状数组