当前位置: 首页 > news >正文

不是网站开发语言的是百度上海推广优化公司

不是网站开发语言的是,百度上海推广优化公司,网业版,一家公司做网站需要什么资料目录 前言 Vector类 遍历与初始化vector ​vector的扩容机制 vector的对象操作 find与insert 对象数组 前言 string类中还有一些内容需要注意#xff1a; STL 的string类怎么啦#xff1f; C面试中string类的一种正确写法 C STL string的Copy-On-Write技术 C的st…目录 前言 Vector类 遍历与初始化vector ​vector的扩容机制 vector的对象操作 find与insert 对象数组 前言 string类中还有一些内容需要注意 STL 的string类怎么啦 C面试中string类的一种正确写法 C STL string的Copy-On-Write技术 C的std::string的“读时也拷贝”技术 Vector类 vector文档cplusplus.com/reference/vector/vector/ 基本概念vector是表示可变数组针对int、double等字符数组去用string的序列容器 类原型template class Tclass Alloc allocatorT class vector class Alloc allocatorT内存池采用系统提供的默认的就行  注意事项[]、普通数组和at的区别在于[]利用断言检查不给改错机会普通数组是抽查的给改错机会at是异常捕获 以下几个表中的内容与string类中的内容相似不再一一演示  vector的定义 (constructor)构造函数声明 接口说明 vector() 重点 无参构造 vectorsize_type n, const value_type val value_type() 构造并初始化n个val vector (const vector x); 重点 拷贝构造 vector (InputIterator first, InputIterator last) 使用迭代器进行初始化构造 vector iterator的使用iterator的使用接口说明 begin  end 获取第一个数据位置的iterator/const_iterator 获取最后一个数据的下一个位置 的iterator/const_iterator rbegin  rend 获取最后一个数据位置的reverse_iterator获取第一个数据前一个位置的 reverse_iterator vector的增删改查vector的增删改查接口说明 assign 覆盖 push_back 尾插 pop_back 尾删find查找不是vector的成员接口使用时要包含algorithm头文件 insert 在指定位置前插入数据 erase 删除指定位置数据 swap 交换两个vector的数据空间 clear 清空数据 operator[] 像数组一样访问 遍历与初始化vector #include iostream #include vector using namespace std;int main() {//初始化vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);//vectorint(10,1)开始个空间每个空间给个1//[]重载for (size_t i 0; i v.size(); i){cout v[i] ;}cout endl;//迭代器vectorint::iterator it v.begin();while (it ! v.end()){cout *it ;it;}cout endl;//范围forfor (auto i : v){cout i ;}cout endl;return 0; } ​vector的扩容机制 1、扩容1.5倍然后取整 #include iostream #include vector using namespace std;void test_vector2() {size_t sz;vectorint v;sz v.capacity();cout making v grow\n;for (int i 0; i 100; i){v.push_back(i);if (sz ! v.capacity()){sz v.capacity();cout capacity change sz endl;}} }int main() {test_vector2();return 0; }2、resize和reserve不会缩容要缩容用shrink_to_fit #include iostream #include vector using namespace std;void test_vector2() {size_t sz;vectorint v;sz v.capacity();v.reserve(100);//提前开空间cout making v grow\n;for (int i 0; i 100; i){v.push_back(i);if (sz ! v.capacity()){sz v.capacity();cout capacity change sz endl;}}cout ----------------------- endl;cout reserve尝试对原空间进行缩容 endl;cout 原size v.size() endl;cout 原capacity v.capacity() endl;v.reserve(10);cout 后size v.size() endl;cout 后capacity v.capacity() endl;cout ----------------------- endl;cout resize尝试对原空间进行缩容 endl;cout 原size v.size() endl;cout 原capacity v.capacity() endl;v.resize(10);cout 后size v.size() endl;cout 后capacity v.capacity() endl;cout ----------------------- endl;cout 原size v.size() endl;cout 原capacity v.capacity() endl;cout shrink_to_fit尝试对原空间进行缩容 endl;v.shrink_to_fit();cout 后size v.size() endl;cout 后capacity v.capacity() endl;}int main() {test_vector2();return 0; }vector的对象操作 find与insert #include iostream #include vector #includestring #include algorithm using namespace std;//增删改查 void test_vector3() {vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);v.push_back(4);v.push_back(5);cout 初始化 ;for (auto e : v){cout e ;}cout endl;//找到数组中的3并返回该数据的下标auto pos find(v.begin(), v.end(), 3);if (pos ! v.end())//左闭右开才能遍历到数组所有的值{v.insert(pos,30);//在pos位置前插入30}cout 在3前插入30后 ;for (auto e : v){cout e ;}cout endl;//头插v.insert(v.begin(), 0);cout 头插0 ;for (auto e : v){cout e ;}cout endl;//在下标为2的位置插入v.insert(v.begin() 2, 20);cout 在下标为2的位置插入20 ;for (auto e : v){cout e ;}cout endl;string s(abcd);cout 头插字符串 ;v.insert(v.begin(), s.begin(), s.end());for (auto e : v)//读取ASCII码{cout e ;}cout endl;}int main() {test_vector3();return 0; }对象数组 push_back的原型void push_backconst value_type val value_type自适应类型 #include iostream #include vector #includestring #include algorithm using namespace std;//对象数组 void test_vector4() {//对象数组vectorstring v;//版本一有名对象string s1(苹果);v.push_back(s1);//版本二匿名对象v.push_back(string(香蕉));//版本三隐式类型转换-产生临时对象-将该临时对象传入-val就是string类型对象的引用//隐式类型转换字符串-字符数组-调用std::string(const char*)构造临时std::string对象并将该对象传递给函数v.push_back(草莓);//版本一二三效果相同for (auto e : v){cout e ;}cout endl;}int main() {test_vector4();return 0; }在 Visual Studio 中使用 std::string通常情况下当字符串长度小于等于 28 字节时std::string 对象会将字符串内容存储在对象内部的小缓冲区中。这个小缓冲区被称为 短字符串优化。这样可以避免频繁地进行堆分配和释放。对于超过 28 字节的较长字符串则会动态分配内存来存储其内容且 std::string 对象本身仅保存指向堆上数据的指针。         如果有一个包含多个较长字符串的对象数组并且只关心它们是一个对象数组而不需要了解每个具体元素所在位置或大小细节那么您可以声明一个 std::vectorstd::string 来存储这些字符串。无论单个 std::string 的大小如何在该向量中每个元素都将是一个完整的 std:string 对象。 vector是一个数组模板除了有对象数组还可以有链表数组、树数组、以及嵌套vector数组 树数组vectortree tc 链表数组vectorlist lc 嵌套vector数组vectorvectorint cc 外部vector的T是vectorint*内部vector的T是int*vectorint*可以指向多个vectorintint*可以指向多个int外部vector实例化出了对象数组内部vector实例化出了整型数组 ~over~
http://www.hkea.cn/news/14291504/

相关文章:

  • 企业网站的种类tk域名官方网站
  • 兰甘肃网站建设seo学徒是做什么
  • 谷歌网站管理员账号网站开发工具js
  • 网站开发前的准备淘宝上做网站可信吗
  • 网站的结构怎么做wordpress淘宝客自适应模板
  • 学做网站的网站藁城区建设局网站
  • 网站建设价格兴田德润i网址多少最新网站开发需求文档
  • 口碑好的坪山网站建设哈尔滨网站建设的公司
  • 国内 上市网站建设公司排名ppt免费下载的网站
  • 培训网站开发流程品牌网站建设c股j东大蝌蚪
  • 网站开发人员 怎么保存制作一个网站多少钱啊
  • yellow片观看完整版网站建设布局利于优化
  • python做网站快么昆山做网站的
  • 潍坊网络推广网站建设wordpress比特币插件
  • 织梦怎么做单页网站医院门户网站模板下载
  • 大良营销网站建设平台帮人家做网站难吗
  • saas建站平台源码有哪些做普洱茶网站的
  • 长沙企业建网站网站域名可以更换吗
  • 球迷类的网站如何做汕头网站推广
  • 网站的 规划与建设wordpress 门户网站源码
  • 手机做直播官方网站o2o最好的平台
  • 企业网站管理系统 才能湖南岚鸿简单房地产网站在哪
  • 远程教育网站建设方案asp.net网站登录
  • 企业内部网站模板下载做网站推荐源创网络
  • 学习网站建设的是什么专业谷歌优化 网站建设
  • 通过一个站点的建设方案十大免费excel网站
  • 网站页面设计的网址需要网站建设
  • 网站icp备案证明文件企业营销的目的
  • 如何做免费网站网站运营维护
  • 西安大兴医院网站建设wordpress插件 乱码