vector和string都是使用连续内存来存储数据,可以类似于普通数组进行处理。

std::vector<int> datas;
std::string strData;

获取vector的首个元素的指针:

&datas[0]
&(*datas.begin())

但必须确保容器非空,使用前最好调用empty()。
C++11中,可以使用成员函数data()。
其函数声明为:

value_type* data() noexcept;
const value_type* data() const noexcept;

获取std::string的字符串地址:

通过成员函数c_str(),返回一个const char*, 指向的字符串可能是strData的一个拷贝。

strData.c_str();

其函数声明为:

const char* c_str() const noexcept;

16.了解如何把vector和string数据传给旧的API相关推荐

  1. 8.了解如何把vector和string数据传给旧的API

    vector和string都是使用连续内存来存储数据,可以类似于普通数组进行处理. std::vector<int> datas; std::string strData; 获取vecto ...

  2. 16进制转换为10进制数——算法

    16进制转换为10进制数 题目描述 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~15分别用大写的英文字母A.B.C.D.E.F表示 ...

  3. 将uint8_t类型的16进制字符转化转换为string字符串

    碰到一个需求,需要把硬件读到的uint8_t类型的16进制数据转化为string类型的字符串. 例如,如果读到到的数据是一个uint8_t类型的数组uint8_t code=[5]={0XAA, 0X ...

  4. 向顺序容器vector、string、deque、list、forward_list中插入\删除元素时迭代器、引用、指针的变化

    1.插入元素 (1)对于vector.string来说,当在某个位置插入元素后,如果内存空间重新分配,则指向任何位置的迭代器.指针.引用都会失效: 如果内存空间没有重新分配,则在插入位置之前的迭代器. ...

  5. 获取顺序容器vector,deque,string和array的首尾元素的方法有四个

    获取顺序容器vector,deque,string和array的首尾元素的方法有四个: (1)迭代器 (2)下标 (3)front() 和 back()成员函数 (4)at()成员函数 如下所示,得到 ...

  6. 使用reserve函数避免vector和string的内存重新分配

    vector和string内部维护的内存会"自动增长",以便容纳不断放入其中的元素.调用max_size()可以返回其容量的最大限制. "自动增长"的过程如下: ...

  7. vector和string

    我这里不是将他们的区别,主要讲使用他们时要注意的一些问题,主要体现在内存方面. C++中,我们很少使用C中的数组,使用数组就意味着承担: new一个数组以后,必须保证有delete来删除所分配的内存. ...

  8. 【S13】vector和string优先于动态分配的内存

    1.使用new动态分配内存,必须承担如下责任: a.使用delete释放内存: b.确保使用了正确的形式,delete与new的形式要匹配: c.不能重复delete. 2.使用vector和stri ...

  9. STL标准模板库中的vector、string、deque、stack、list、set和map的详细介绍——C++学习记录01

    文章目录: 1.vector 1.1 遍历方式 1.2 构造函数 1.3 容量大小问题 1.4 插入和删除 1.5 存取值 1.6 交换两个vectot的元素 1.7 预定义存储空间 2.string ...

  10. EC3-13 Prefer vector and string to dynamically allocated arrays

    用new动态分配内存时,意味着还需要:确保之后会delete删除分配的内存,正确的使用delete和delete[],确保一个分配只delete一次. 然而用vector和string,就可以避免这些 ...

最新文章

  1. linux安装8168网卡,Fedora 配置 RTL8168/8111 网卡 Linux下 RTL8168/8111 网卡配置
  2. 阿里二面:Redis 中的 AOF 文件太大了怎么办?
  3. 全网最强Python版《超级玛丽》小游戏,我还是你的马里奥嘛?
  4. 将列表转成数组_漫画 | 什么是散列表(哈希表)?
  5. Apache开启Gzip压缩技术,加快网页访问速度
  6. Linux做软raid10,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  7. 番石榴15 –新功能
  8. C语言开发笔记(一)自动转换和强制转换
  9. java设计一个bank类实现银行_AOS公链推出“隐私Bank”,彻底打破资产发行门槛!...
  10. Java 面向对象的设计思维
  11. 通过SQL直接插入、修改ArcGIS SDE空间表中的数据
  12. Elasticsearch: Cerebro 用户界面介绍
  13. InstallShield Build错误:Internal build error 6041
  14. Underscore js是一个JavaScript实用库
  15. css3 弹性盒模型 变化
  16. Android的Jetpack概括
  17. JSTL迭代操作--c:forEach,c:forTokens
  18. 软件测试影响最深的bug,软件测试面试题-那些让我印象深刻的bug
  19. 列宽一字符等于多少厘米_excel里面的列宽和行高单位是多少?多少等于1厘米?怎么对比的?...
  20. [随笔] flex 布局使用 space-between 尾行排版效果优化

热门文章

  1. Android studio 无法启动安卓模拟器
  2. Node.js 教程第五篇——request
  3. 【iOS-Cocos2d游戏开发之十五】详解CCProgressTimer 进度条实现“理想”游戏进度条!...
  4. 给初学者的20个CSS实用建议
  5. 让Windows 7变成WIFI热点
  6. 重提URL Rewrite(4):不同级别URL Rewrite的一些细节与特点
  7. 92. php 命名空间(2)
  8. 24. Navigator taintEnabled() 方法
  9. pytest文档2-用例运行规则
  10. openstack trove实例状态转换条件--Mitaka版本