美文网首页
C++vector日记

C++vector日记

作者: codeflame | 来源:发表于2018-02-12 23:37 被阅读0次

STL标准容器vector,动态数组。
如果类A只有带参构造函数如A(int n),这时A *arr=new A[],这个不好弄,直接丢到vector去弄成动态数组

int main()
{
//几个重载构造函数
    int arr[]={1,2,3,4,5};
    vector<int> first;  //空的
    vector<int> second(4,100);    //新建4个元素,全部赋值为100
//↑对上面提到的类A,理所当然的如vector<A> second(4,A(100) );之类
    vector<int> third (second.begin(),second.end());  //参数为second的迭代器包括的范围
    vector<int> fourth(arr,arr+5);  //数组类似,在arr~arr+5范围内,左开右闭[arr,arr+5)
//↑也能直接:vector<int> fourth={1,2,3,4,5};
    vector<int> fifth (fourth);   //复制第4个vector
    vector<int> sixth(100);  //初始容量为100,与size()含义不同

//容易忘记的方法
    vector<int> v;
    v.reserve(100);  //重分配容量为100,只有大于capacity时才会实际执行重分配
    v.swap(fifth);  //把v与fifth的内容交换,数组交换的意思
    v.emplace(10); //不指定插入位置则同insert默认放到最后,能使用构造函数新建对象插入
    int a1 = v.front();  //返回第一个元素v[0]
    int a2 = v.back();  //返回最后一个元素v[v.size()-1]
    vector<int>::iterator iter = v.begin(); //返回开头的迭代器
//↑另外cbegin(),rbegin()等,c意味const,r意味从右开始,即end()
    v.push_back(10); v.pop_back();  //前:加入至尾部,后:删除最后一元素
//↑借这两个方法和v.back()即可当栈stack来用,后进先出

    make_heap (v.begin(),v.end());//形成最大(默认)堆,下面操作的基础,v[0]为最大值
    int ans=v.front();    //取值
    pop_heap(v.begin(),v.end());  v.pop_back(); 
//↑前:把v[0]丢最后,后:删除最后元素。组合起来就是取最大堆的顶元素
    v.push_back(ans);   push_heap(v.begin(),v.end());
//↑把ans放到尾部,再形成最大堆结构。组合起来就是最大堆的插入元素
}

另外,最大堆最小堆也可由<queue>的优先队列priority_queue完成,更方便。另外值得记住size大于capacity时,capacity增加为1.5倍原容量,而且vector也像string有最大字符数一样,也有最大上限

相关文章

  • C++vector日记

    STL标准容器vector,动态数组。如果类A只有带参构造函数如A(int n),这时A *arr=new A[]...

  • C++Vector

    用法归纳 注意事项:

  • 2018-06-29

    日记,日记,日记,日记,日记,日记,日记,日记,日记,日记。

  • 日记本测试

    日记本测试日记本测试日记本测试日记本测试日记本测试日记本测试日记本测试日记本测试日记本测试日记本测试日记本测试日记...

  • 记不住生日

    记不住生日记不住生日记不住生日记不住生日记不住生日记不住生日记不住生日记不住生日记不住生日记不住生日记不住生日记不...

  • 我是日记本呀日记本

    我是日记本呀日记本我是日记本呀日记本我是日记本呀日记本我是日记本呀日记本我是日记本呀日记本我是日记本呀日记本我是日...

  • 【日记星球】外婆日记(第91篇)总有一款适合你

    《我今天写什么日记》这本书上介绍说,日记可以分为很多类型,例如生活日记、制图日记、读书日记、思维地图日记、观察日记...

  • 职场好习惯,从记日记开始养成

    职场好习惯,从记日记开始养成 1.牛人都记日记 曾国潘日记、蒋介石日记、胡适日记、杨尚昆日记 2.记日记的益处极大...

  • 日记2

    日记2日记2日记2日记2

  • 成功日记

    思想日记创意 知识日记 关系日记 旅游 作家

网友评论

      本文标题:C++vector日记

      本文链接:https://www.haomeiwen.com/subject/eyidtftx.html