首页 > Windows开发 > 详细

关于将vector以及string传递给较老的api的问题

时间:2016-01-19 17:09:10      阅读:295      评论:0      收藏:0      [点我收藏+]

  现在可能STL使用的越来越多,但是一些较老的api并不支持例如vector这样的兑现,但是可以使用一些技巧来使其适应于这些函数。

  例如对于使用到int*型的函数来说,传入一个 &vector[1],是完全可以的,再比如说C语言经常使用到的memcpy,下面的使用也是可以的:

1 vector<int> nums{1,2,3};
2 int arr[3];
3 memcpy(arr, &nums[0], 3 * sizeof(int));

  这是因为vector保证了其中的内容是存放再连续的内存空间中的。

  但是可惜的是string不会做出这种保证,所以想要和较老的使用const char *相兼容的话使用 string.c_str(),才可以。

关于将vector以及string传递给较老的api的问题

原文:http://www.cnblogs.com/-wang-cheng/p/5142692.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!