当前位置: 首页 > 面试题库 >

请你回答一下STL里resize和reserve的区别?

李宁
2023-03-14
本文向大家介绍请你回答一下STL里resize和reserve的区别?相关面试题,主要包含被问及请你回答一下STL里resize和reserve的区别?时的应答技巧和注意事项,需要的朋友参考一下

resize():改变当前容器内含有元素的数量(size()),eg: vector v; v.resize(len);v的size变为len,如果原来v的size小于len,那么容器新增(len-size)个元素,元素的值为默认为0.当v.push_back(3);之后,则是3是放在了v的末尾,即下标为len,此时容器是size为len+1;

 

#include <iostream>
#include <vector>
using namespace std;
int main() {
    vector<int> a;
    a.reserve(100);
    a.resize(50);
    cout<<a.size()<<"  "<<a.capacity()<<endl;
        //50  100
    a.resize(150);
    cout<<a.size()<<"  "<<a.capacity()<<endl;
        //150  200
    a.reserve(50);
    cout<<a.size()<<"  "<<a.capacity()<<endl;
        //150  200
    a.resize(50);
    cout<<a.size()<<"  "<<a.capacity()<<endl;
        //50  200    
}

 

 类似资料:
  • 本文向大家介绍请你回答一下mongodb和redis的区别相关面试题,主要包含被问及请你回答一下mongodb和redis的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 内存管理机制上:Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据。MongoDB 数据存在内存,由 linux系统 mmap 实现,当内存不够时,只将热点数据放入内存,其

  • 本文向大家介绍请你回答一下fork和vfork的区别相关面试题,主要包含被问及请你回答一下fork和vfork的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: fork的基础知识: fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用: #include <sys/types.h> #include <unistd.h> pid_t fork(void); 成功调用

  • 本文向大家介绍请你回答一下git中Merge和rebase区别?相关面试题,主要包含被问及请你回答一下git中Merge和rebase区别?时的应答技巧和注意事项,需要的朋友参考一下 Merge会自动根据两个分支的共同祖先和两个分支的最新提交 进行一个三方合并,然后将合并中修改的内容生成一个新的 commit,即merge合并两个分支并生成一个新的提交,并且仍然后保存原来分支的commit记录 R

  • 本文向大家介绍请你来回答一下C++中 ++i和i++的区别?相关面试题,主要包含被问及请你来回答一下C++中 ++i和i++的区别?时的应答技巧和注意事项,需要的朋友参考一下 ++i先自增1,再返回,i++先返回i,再自增1

  • 本文向大家介绍请你回答一下Array&List, 数组和链表的区别相关面试题,主要包含被问及请你回答一下Array&List, 数组和链表的区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 数组的特点: 数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。数组的插入数据和删除数据效率低,插入数据时,这个位置后面的数据在内存中都要向后移。删除数据时,

  • 本文向大家介绍请你回答一下软链接和硬链接区别相关面试题,主要包含被问及请你回答一下软链接和硬链接区别时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 为了解决文件共享问题,Linux引入了软链接和硬链接。除了为Linux解决文件共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。若1个inode号对应多个文件名,则为硬链接,即硬链接就是同一个文件使用了不同的别名,使用ln创建。若文