码迷,mamicode.com
首页 > 其他好文 > 详细

stl

时间:2020-01-16 01:04:49      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:移动   注意   动态数组   中间   包括   元素   color   nbsp   cto   

 

技术图片

 

 

 

容器

vector

特点:动态数组 元素类型相同 只能从尾部快速插入或者删除 随机访问快 中间插入删除慢(需要移动) capcity是给的块的大小

 

定义vector

vector<int> A(10, 1); //声明一个初始大小为10且值都是1的向量
vector<int> A(tmp);   //声明并用tmp向量初始化vec向量
vector<int> tmp(A.begin(), A.begin() + 3);  //用向量vec的第0个到第2个值初始化tmp
int arr[5] = {1, 2, 3, 4, 5};   
vector<int> A(arr, arr + 5);      //将arr数组的元素用于初始化A向量
//说明:当然不包括arr[4]元素,末尾指针都是指结束元素的下一个元素,
//这个主要是为了和vec.end()指针统一
vector<int> A(&arr[1], &arr[4]); //将arr[1]~arr[4]范围内的元素作为A的初始值

vector操作

向量大小: A.size();
向量最大容量:  A.max_size();与机器有关 与程序无关
更改向量大小:  A.resize(n); n是新的大小

例证capacity、resize、shrink to fit 的关系

vector<int> myvector(100);#myvector.capacity() 是100
    myvector.resize(10);#myvector.capacity() 还是100没有变成10
    myvector.shrink_to_fit();#myvector.capacity() =10了
    //缩小到真实单位
   

push_back(i):把i添加到队尾           pop-back()没有参数,删除最后一位      at(n):返回下标为n的元素,实际上是第n+1个    empty():0为非空

assign(2,3):重新分配元素为2个3       insert(myvector.begin()+1, 8);//在第一和第二插入8   erase():删除,用法同inset   

vector<int>::iterator it 迭代器 在for中注意用*it

end返回最后的后一个位置  begin返回第一个位置

 



 

 

 

  

 

stl

标签:移动   注意   动态数组   中间   包括   元素   color   nbsp   cto   

原文地址:https://www.cnblogs.com/hellod/p/12199154.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!