STL拾漏补遗

1.std::string::copy(char*,int pos, int count)

   std::string str = "hello, world";
   char var[4] = { 0 };
   str.copy(var, 3, 2);

2.vector[i].若超界,输出一个随机数,vector.at(i)超界会抛出异常

3.vector插入类时,必须定义这样一个拷贝构造函数:
CA(const CA&)
{}


4.vector获取和设置最后/第一个元素
int ifront = vec.front();
int iback = vec.back();

vec.front() = 123;
vec.back() = 345;

5.如果vector的元素是CA*, vec.push_back(new CA);那么必须手动循环删除vector里面的指针

6.map::erase( key );

7.传递仿函数的引用,其实没也效果,比如这样一个类,IntSequence:
generate_n<back_insert_iterator<list<int> >,
int, IntSequence&>(back_inserter(coll), 4, seq);
generate_n内部,会调用另外一个_Generate_n函数,这个函数会真正的调用seq(),虽然调用generate_n时使用了引用,
但_Generate_n却无法设定为使用引用,所以调用结束时,seq的状态并没有改变

8.
inline std::string Test()
{
std::string ret;
ret.reserve(20); //这表示预留20字节的空间,但还没有用

strcpy(&ret[0], "what kind"); ret此时的大小为0,所以返回一个空串
return ret;
}

9.std::map, 使用find()和count()方法来判断是否存在某一个元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值