STL总结

1.reserve和resize什么区别
、resize(n):调整容器的长度大小,使其能容纳n个元素。如果n小于容器当前的size,则删除多出来的元素,否则,添加采用值初始化的元素。

reserve(n,t):多一个参数t,将所有新添加的元素初始化为t。

2、reserve(n):预分配n个元素的存储空间。

  capacity:容量(容器当前拥有的元素个数)

  size:长度(容器在必须分配新存储空间之前可以存储的元素总数)

3、resize->size:调用resize(n),容器的size即为n。

reserve->capacity:调用reserve(n)。若capacity<n,重新分配内存;若capacity>n,不变。

4、调用resize(),所有空间都已经被初始化,可直接访问。

调用reserve(),预分配出的空间没有被初始化,所以不可访问。

2.auto:const &可以推断出来吗
如果初始化表达式是引用,则去除引用语义;
auto &d = b;//此时c的类型才为int&
如果初始化表达式为const或volatile(或者两者兼有),则除去const/volatile语义。
如果auto关键字带上&号,则不去除const语意:

const int a2 = 10;
auto &b2 = a2;//因为auto带上&,故不去除const,b2类型为const int
b2 = 10; //非法

初始化表达式为数组时,auto关键字推导类型为指针;若表达式为数组且auto带上&,则推导类型为数组类型。
函数或者模板参数不能被声明为auto
时刻要注意auto并不是一个真正的类型。
auto仅仅是一个占位符,它并不是一个真正的类型,不能使用一些以类型为操作数的操作符,如sizeof或者typeid。

cout << sizeof(auto) << endl;//错误
cout << typeid(auto).name() << endl;//错误

3.常用的库函数:
1.atoi(字符串.c_str());字符串=>数字;
string s=“123”
stringstream sstr(s);
int x;
sstr>>x; //注意:stringstream都放在前面

数字=》字符串

stringstream sstr;
string str;
double x=32.23;
sstr<<x;
sstr>>x;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值