C++总复习--7--C++程序设计--STL

C++总复习--7--C++程序设计--STL

1.STL-容器(容器的使用简单,底层实现,适用场景)

(1)vector  

(2)list

(3)deque

(4)set/multiset

  (5)   map/multimap

  (6)   stack.queue/priority.queue

2.STL-函数对象

(1)一元函数对象

(2)二元函数对象

       less、less_equa、greater、greater_equal

扫描二维码关注公众号,回复: 11655530 查看本文章

3.迭代器

(1)iterator

  (2)  const_iterator

  (3)  reverse_iterator

4.空间配置器

(1)一级空间配置器

(2)二级空间配置器


1.容器类(数据结构)

     1.顺序容器

          vector    list    deque

2.关联容器

           set   multiset    map    multimap

3.容器适配器

      stack    queue    priority_queue

Vector  数组

1.简单操作

push_back   insert

pop_bash    erase

2.底层实现

数组    动态开辟

3.扩容方式

                以倍数的形式开辟更大的内存

                旧的数据拷贝到新的内存中

                释放旧的内存

                指向新的内存并调整总大小

4.特点

    尾部快速的插入或者删除

    直接访问元素

 

函数对象   仿函数

以对象的形式存在,做函数调用所做的事情

      Operator()调用运算符的重载 一元函数   二元函数

摆脱了对接口名称的依赖

写一个函数来实现排序,针对容器的

        #include <functional>  //函数对象库

Vector容器是数组构成,随机访问迭代器

(1)默认的构造(2)count的构造(3)count,val的构造(4)区间的构造

 

list容器   

          是双向链表,双向迭代器,特点:任意位置插入删除,访问数据O(n)

                内存不一定连续  所以不能+i

list类中提高类成员方法进行排序

list直接调用sort   如:lst1.sort()

空间适配器

对象的生成

  1. 开辟空间         allocate
  2. 调用构造函数     construct

对象的销毁

  1. 调用析构函数      destroy
  2. 释放空间          deallocate

一级空间配置器            >128 bytes 足够大

      Malloc   free

二级空间配置器            <= 128bytes 足够小

      自由链表的内存池

   二级算出位置: (Size - 1)/8,比如:126怎么分配?

猜你喜欢

转载自blog.csdn.net/qq_41103495/article/details/107975777