• C++ Primer笔记 容器和算法(2)


    erase 删除后  返回的是删除元素的后一个迭代器位置
    int main()
    {
    	//怎样正确的删除全部元素 循环
    	int a[]={1,2,3,4,5,6,7,8,9};
    	vector<int> v(a,a+6);
    	for(vector<int>::iterator it=v.begin();it!=v.end();)
    	{
    		it=v.erase(it);
    	}
    	for(vector<int>::iterator it=v.begin();it!=v.end();it++)
    	{
    		cout<<*it<<endl;
    	}
    	cout<<v.size()<<endl;
    	getchar();
    	return 0;
    }




    重置元素和交换元素


    c.swap(c2)


    c.assign(b,e)


    c.assign(n,t)  (迭代器不能是指向c的)


    容器能够自己主动增长


    像vector这样的增长代价比list要大


    capacity()和reserve()


    通常会预留比size大的空间,当不得不又一次分配内存时候,会加倍当前容量的分配策略
    也能够手动reserve(size) 分配


    deque能够随机訪问


    String s4(s3.begin(),s3.end())

    适配器

     

    1.       Stack<int> stack(deq)‘

    Stack,queue都基于deque实现

    2.       Priority_queue 基于vector实现

    s.empty()

    s.size()

    s.pop()

    s.top()

    s.push(item)

    队列

    q.empty()

    q.size()

    q.pop()

    q.front()

    q.back()

    q.top()

    q.push()

    关联容器

     

    Map与set

     

    Map:key-value

    Set:一个key

    Multimap:同一个键多次出现的map类型

    Multiset:同一个键多次出现的set类型

     

    1.Pair 类型

    创建与初始化:  pair<string,string> p;

    p.first 第一个元素  p.second 第二个元素

    又一次生成:  pair<string,string>next;

                          Next=make_pair(first,last);

    也支持直接赋值

                    Next.first=xx.   Next.second=xx;

    2.关联容器:

    2.1 map

    Map<ISBN,sales> bookstore;

    Map<k,v>::key_type , mapped_type,value_type(pair类型)

  • 相关阅读:
    elasticsearch 5.x 系列之七 基于索引别名的零停机升级服务
    Linux 查看系统硬件信息(实例详解)
    linux grep命令详解
    Boot loader: Grub进阶(转)
    Boot loader: Grub入门(转)
    内核模块管理(转)
    Centos启动流程(转)
    Linux 内核启动流程(转)
    程序的运行顺序(转)
    查询进程打开的文件(转)
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7371372.html
Copyright © 2020-2023  润新知