zoukankan      html  css  js  c++  java
  • 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类型)

  • 相关阅读:
    FEniCS 1.1.0 发布,计算算术模型
    Piwik 1.10 发布,增加社交网站统计
    淘宝褚霸谈做技术的心态
    CyanogenMod 10.1 M1 发布
    Druid 发布 0.2.11 版本,数据库连接池
    GNU Gatekeeper 3.2 发布
    Phalcon 0.9.0 BETA版本发布,新增大量功能
    EUGene 2.6.1 发布,UML 模型操作工具
    CVSps 3.10 发布,CVS 资料库更改收集
    Opera 移动版将采用 WebKit 引擎
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7371372.html
Copyright © 2011-2022 走看看