zoukankan      html  css  js  c++  java
  • C++ STL学习总结

    1.vector

    //最好给它一个初始化大小

    #include <iostream>
    #include <vector>
    using namespace std;
     
    int main()
    {
       // 创建一个向量存储 int
       vector<int> vec; 
       int i;
     
       // 显示 vec 的原始大小
       cout << "vector size = " << vec.size() << endl;
     
       // 推入 5 个值到向量中
       for(i = 0; i < 5; i++){
          vec.push_back(i);
       }
     
       // 显示 vec 扩展后的大小
       cout << "extended vector size = " << vec.size() << endl;
     
       // 访问向量中的 5 个值
       for(i = 0; i < 5; i++){
          cout << "value of vec [" << i << "] = " << vec[i] << endl;
       }
     
       // 使用迭代器 iterator 访问值
       vector<int>::iterator v = vec.begin();
       while( v != vec.end()) {
          cout << "value of v = " << *v << endl;
          v++;
       }
     
       return 0;
    }
    • push_back( ) 成员函数在向量的末尾插入值,如果有必要会扩展向量的大小。
    • pop_back( )    删除末尾元素                                                                                                      
    • size( ) 函数显示向量的大小                                                                                                                                                              
    • resize( ) 改变大小
      •   
    • insert( ) 插入操作
      • #include<iostream>
        #include<vector>
        using namespace std;
        vector<int> v1(100,2); 
        int main(){
            vector<int> v2;
            v2.push_back(3);
            v1.insert(v1.begin(),3);//在开始位置插入元素 3
            v1.insert(v1.begin()+3,2,344);//在指定位置插入2个344
            v1.insert(v1.begin(),v2.begin(),v2.end());//在开始位置插入整个区间元素 
            return 0;
        }
        View Code
    • emplace( ) 
      • emplace( 迭代器  ,个数,插入元素);
    • 删除操作  ( 并没有释放内存)
      • clear( )   清空  
      • erase( )    删除
    • 释放内存
      • swap()   //与一个空 vector 交换
    • 查找操作
      • find( )    
      • 找到则返回迭代器的位置,否则迭代器将指向 end( )
    • begin( ) 函数返回一个指向向量开头的迭代器。
    • end( ) 函数返回一个指向向量末尾的迭代器。
    • front( ) 返回第一个元素的引用
    • back( )  返回最后一个元素的引用

    2.deque   双向队列

      2.1  size( )大小与容量相等

      2.2  at( )  用进行边界检查的索引来访问元素

      2.3  frant( )  , back( )

      2.4  添加元素   删除元素

        push_back( )  ,pop_back( )   尾部

        push_front( )  ,pop_front( )   头部

        insert( )

        erase( )

        clear( )

    3.list   双向链表

      3.1 size ( )

      3.2 resize( )

      3.3 push_front( )   头部添加元素    push_back( )  尾部

        insert( )

      3.4 clear( ), erase( )

      3.5 remove( )    移除与参数相同的元素

      3.6 unique( )   移除重复元素,只保留第一个

      3.7 排序

        无参 sort() 函数将所有元素升序排列

        接受一个函数对象,排序

      3.8 merge( )   合并,必须为升序

      3.9 front   ,back 

    4.stack   栈

      stack

      4.1  创建栈时,不能在初始化列表用对象来初始化,但可以用另一个容器来初始化

      4.2  top( )   返回栈顶元素的引用

      4.3  push( )  压入栈顶

      4.4  pop( )  弹出栈顶元素

      4.5 size( )  返回栈中元素的个数

      4.6 empty( ) 判断栈是否为空

      4.7 emplace( )   emplace函数在栈顶中直接构造元素

      4.8  swap( )  将当前栈中的元素和参数中的元素交换

    5. queue   

     queue

      5.1  push( )  尾部添加

      5.2  pop( )  删除第一个元素

      5.3  front( )  返回第一个元素的引用

      5.4  back( ) 返回最后一个元素的引用

      5.5  size( )

      5.6  empty( )

      5.7  emplace( )

    6.map 

      不允许有重复值

      6.0  初始化

        通过两个嵌套的花括号,或make_pair( T1,  T2)

      6.1  size( )   , empty( )  ,clear( )

      6.2  insert( )  插入

        insert( make_pair( T1,T2) );

      6.3  find( )   查找

      6.4 构造新元素

        emplace( )  

      6.5 at( )  返回参数键对应的元素

        [ ]   : int i= Name [ key ]

      

      6.4  erase( )  删除

        移除键和参数匹配的元素,然后返回所移除元素的个数 (  0 , 1  )

        也可以用指向删除元素的迭代器作为 erase() 的参数。这种情况下,返回的迭代器指向

        被删除元素的下一个位置

    7.unordered_map

    8.set  集合

      

  • 相关阅读:
    SpringBoot @Transactional声明事务无效问题
    高并发秒杀系统方案(集成Mybatis和Redis)
    高并发秒杀系统方案(项目框架搭建)
    高并发秒杀系统方案(简介)
    解决VMware虚拟机的CentOS无法上网
    收货地址管理模块开发
    购物车模块开发
    乐观锁和悲观锁
    商品模块开发
    数据库系列学习(十)-约束
  • 原文地址:https://www.cnblogs.com/w-w-t/p/11740566.html
Copyright © 2011-2022 走看看