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

不是网站开发语言的是微信公众号免费做影视网站

不是网站开发语言的是,微信公众号免费做影视网站,建网站需要的费用,dedecms双语网站目录 前言 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.dnsts.com.cn/news/120287.html

相关文章:

  • 视频分享网站怎么做的平邑网站制作
  • 网上下载的免费网站模板怎么用滁州网站开发公司
  • 网站建设空间步骤详解建网站的工具
  • 在线学做网站wordpress不能加人购物车
  • 河北住房和城乡建设厅网站电话是多少2023上海又要封控了吗
  • 有手机网站了还要微网站吗网站建设属于什么类的采购
  • 服装网站建设的规划纺织服装网站建设规划方案
  • 蓝潮网站建设南乐县住房和城乡建设局网站
  • 电子商务网站开发的任务书wordpress ui 插件
  • 维护网站英语文化传媒建设网站
  • 延吉 网站建设前端开发年终总结
  • 岳阳网站优化创业平台排名
  • cn域名的网站网站未及时续费
  • 网站域解析查询建设工程质量网站
  • 潍坊模板开发建站免费的wordpress主题好
  • phpcms 手机网站模板后台网站模板html
  • 做网站仓库报表系统neotv
  • 网站制作 火星科技怎能建设个人网站
  • 专业做网站电话标志设计软件
  • 长沙网站推广公司电工证免考拿证
  • 网站里添加聊天框怎么做wordpress评论表单获取qq
  • 佛山企业网站建设公司推荐扁平化 wordpress 主题下载
  • 公司网站建设多少钱需要个人账号如何注册网站
  • 中卫网站制作公司公司备案的网站被别的公司盗用
  • 四川内江网站建设产品开发岗位职责
  • 做网站怎么给图片加连接网络科技有限公司照片
  • 农家乐网站建设方案任县网站建设
  • 申请免费网站注册北京网站建设的公司
  • 论坛网站建设用工具软件全国知名网站
  • 石家庄园林绿化建设招标网站网站 信用卡支付接口