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

std::back_inserter函数用法

时间:2016-11-27 08:01:43      阅读:1454      评论:0      收藏:0      [点我收藏+]

标签:对象   string   log   用法   isp   int   curl   rac   closed   

back_inserter函数:配合copy函数,把[a, b)区间的数据插入到string对象的末尾,如果容量不够,动态扩容。

 

使用案例:

1、客户端与服务器通信场景:服务器向客户端发送数据,客户端接收数据。

接收数据的三种方法:

(1)错误方法:把接收到的c风格字符串用string构造函数转成string对象,再利用string的重载加运算符函数拼接到变量末尾。数据很有可能是不以‘\0‘结尾,这样的话将出现严重bug。

(2)低效率方法:一个字符一个字符的追加。

(3)正确高效方法:运用copy和back_inserter函数。

技术分享
1 ssize_t Curl::callback(char *ptr, size_t m, size_t n, void *arg) {
2     Curl *This = (Curl *)arg;
3     int count = m * n;
4 
5     //拷贝ptr中的数据到responseData,注意:服务器发来的数据不一定以‘\0‘结束,不能用sprintf去拷贝数据
6     copy(ptr, ptr + count, back_inserter(This->m_responseData));
7     return count;
8 }
back_inserter函数

 

std::back_inserter函数用法

标签:对象   string   log   用法   isp   int   curl   rac   closed   

原文地址:http://www.cnblogs.com/yongqiang/p/6105865.html

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