第三章 数据结构(三) (STL)

 //所有容器都有的
     size();
     empty();
     clear();//队列没有
 

一、vector 变长数组

1、vector要尽量减少申请空间的次数,,不够的时候就直接变成两倍。

第三章 数据结构(三) (STL)_第1张图片

 //初始化
vector a;//10个3
 vectora[10];//10个vector
//遍历
//for (auto x:a)cout<
//添加数据
 for(int i=0;i<10;i++)
    a.push_back(i);
//迭代器
for(vector::iterator i=a.begin();i!=a.end();i++)
    cout<<*i<
//vector数组的第一个数和最后一个数
      cout<
//支持比较运算
      vector a(4,3);
      vectorb(3,4);
      if(a

二、pair 二元组

支持比较运算:以first为第一元素,second为第二元素

  //定义与初始化  
  pairp;
  p=make_pair(10,"xxx");
  p={20,"aaa"};

三、string 字符串

string s="1234";
cout<
printf("%s\n",s);//不能正常输出
printf("%s\n",s.c_str());//可以正常输出
s.clear();

四、queue 队列

           

 queueq;
 //队列没有clear清空方法
 q=queue();
for(int i=0;i<10;i++)
    {
        q.push(i);//添加队尾
    }
    q.pop();//删除队头
    cout<

        priority_queue  优先队列

    //默认是大顶堆
    priority_queueheap;
    //同样没有clear函数
    for(int i=0;i<10;i++)
    {
        //q.push(i);
        //要想按照小顶堆来排序可以加负号
        heap.push(-1*i);
    }
    heap.pop();
    cout<
 //优先队列小根堆的定义方法
    priority_queue,greater>heap;
    for(int i=10;i>=1;i--)heap.push(i);
    cout<

五、stack 栈

         

 stack stk;
   for(int i=0;i<10;i++)stk.push(i);
   stk.pop();
   cout<

五、deque 双端队列

         支持队头队尾双端弹入弹出

dequedeq;
   //队尾插入元素
   deq.push_back(1);
   cout<::iterator i=deq.begin();i!=deq.end();i++)
    cout<<*i<<" ";
   //队首弹出
   deq.pop_front();
   //队尾弹出
   deq.pop_back();
   cout<

六、set、mutiset、(动态维护序列)

   setse;
   multisetmse;
   for(int i=0;i<10;i++)se.insert(i),mse.insert(i-i);
   //注意find的用法
   if(se.find(1)!=se.end())cout<<"找到了"<
   setse;
   multisetmse;
   for(int i=0;i<10;i++)se.insert(i),mse.insert(i-i);
   //lower_bound()返回大于等于x的最小的数
   cout<<*se.lower_bound(1)<

七、map、multimap

 //初始化
   map a;
   //插入
   a["zzz"]=1;
   a.insert(make_pair("aaa",2));
   //可以当数组用 O(log(n))
   cout<second<second<

八、undered_set、unordered_map、unordered_multiset、unordered_multimap 

增删改查的时间复杂度为O(1),不支持lower_bound和upper_bound操作(内部是没有序的),迭代器的加加减减也是不支持的

九、bitset

用一位代替一字节存储,省内存

第三章 数据结构(三) (STL)_第2张图片

你可能感兴趣的:(蓝桥准备,数据结构,c++,开发语言)