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

企业诚信建设网站柳州网站建设哪家

企业诚信建设网站,柳州网站建设哪家,猎头公司网站建设,官方网站建设银行1. 标准库中的vector类的介绍#xff1a; vector是表示大小可以变化的数组的序列容器。 就像数组一样#xff0c;vector对其元素使用连续的存储位置#xff0c;这意味着也可以使用指向其元素的常规指针上的偏移量来访问其元素#xff0c;并且与数组中的元素一样高效。但与数…1. 标准库中的vector类的介绍 vector是表示大小可以变化的数组的序列容器。 就像数组一样vector对其元素使用连续的存储位置这意味着也可以使用指向其元素的常规指针上的偏移量来访问其元素并且与数组中的元素一样高效。但与数组不同的是它们的大小可以动态变化它们的存储由容器自动处理。 在内部vector使用动态分配的数组来存储其元素。当插入新元素时可能需要重新分配此数组才能增大大小这意味着分配一个新数组并将所有元素移动到该数组。就处理时间而言这是一项相对昂贵的任务因此每次将元素添加到容器时vector都不会重新分配。 相反vector容器可能会分配一些额外的存储来适应可能的增长因此容器的实际容量可能大于包含其元素即其大小严格需要的存储。库可以实施不同的增长策略以平衡内存使用和重新分配之间的平衡但无论如何重新分配应该只在大小的对数增长间隔下发生以便在vector末尾插入单个元素时可以提供摊销的恒定时间复杂度参见push_back。 因此与数组相比vector消耗更多的内存以换取以有效的方式管理存储和动态增长的能力。 与其他动态序列容器deques、lists 和 forward_lists相比vector非常有效地访问其元素就像数组一样并且相对有效地从其末端添加或删除元素。对于涉及在末尾以外的位置插入或删除元素的操作它们的性能比其他操作差并且迭代器和引用的一致性低于列表和forward_lists。 这么多话简单的来说vector帮我们构建了c语言中的数组但与c语言数组相比较而言他的效率与使用起来远远大于数组。 本篇文章就不再详细向上篇文章string的介绍了这里只给几个经常用到的几个功能的使用案例与其简单的实现 构造函数 我们知道数组有分很多种 比如如下我们构建整形数组与字符数组  #includeiostream #includevector using namespace std; int main() {vectorint v;//整形数组vectorchar v;//字符数组vectordouble v;//小数数组return 0; } 对于vector有多种构造  我们挨个展示使用案例 #includeiostream #includevector using namespace std; int main() {vectorint first; // 空vectorint second(4, 100); // 4个100vectorint third(second.begin(), second.end()); // 用second创建里面存的值与second相同vectorint fourth(third); // a copy of thirdint myints[] { 16,2,77,29 };vectorint fifth(myints, myints sizeof(myints) / sizeof(int));//利用数组构造//挨个打印cout first:;for (auto e : first){cout e ;}cout endl;cout second:;for (auto e : second){cout e ;}cout endl;cout third:;for (auto e : third){cout e ;}cout endl;cout fourth:;for (auto e : fourth){cout e ;}cout endl;cout The contents of fifth are:;for (vectorint::iterator it fifth.begin(); it ! fifth.end(); it)cout *it;cout \n;return 0; } 迭代器 vector的迭代器与string的迭代器完全相关不太清楚的可以去看我写的string那一篇那一篇从原理详细讲解了迭代器 就比如我们使用迭代器打印上面的second #includeiostream #includevector using namespace std; int main() {vectorint second(4, 100); // 4个100vectorint::iterator it second.begin();while (it ! second.end()){cout *it ;it;}return 0; } 同样也有反向的这里便于观察我们将second换一组值  #includeiostream #includevector using namespace std; int main() {int myints[] { 16,2,77,29 };vectorint fifth(myints, myints sizeof(myints) / sizeof(int));//利用数组构造vectorint::reverse_iterator it fifth.rbegin();while (it ! fifth.rend()){cout *it ;it;}return 0; } 最常用的几个push_backpop_backsizeempty,clear #includeiostream #includevector using namespace std; int main() {vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);cout 添加完后vector;for (auto e : v){cout e ;e;}cout endl;cout vector的大小;cout v.size() endl;v.pop_back();cout 后删完后vector;for (auto e : v){cout e ;e;}cout endl;cout vector是否为空;cout v.empty() endl;//为空返回true反之falsecout clear后;v.clear();//清空for (auto e : v){cout e ;e;}cout endl;return 0; } 查找与修改 vector同样与string一样支持这些功能 就比如查找我们可以通过find查找特定的值也可以通过直接下标operator[]任意访问 find #includeiostream #includevector using namespace std; int main() {vectorint t;t.push_back(1);t.push_back(2);t.push_back(3);t.pop_back();vectorint ::iterator pos find(t.begin(), t.end(), 2);cout *pos endl; } 运行结果              insert #includeiostream #includevector using namespace std; int main() {vectorint t;t.push_back(1);t.push_back(2);t.push_back(3);vectorint ::iterator pos find(t.begin(), t.end(), 2);t.insert(pos,10);for (auto e : t){cout e ;e;} } 运行结果              erase #includeiostream #includevector using namespace std; int main() {vectorint t;t.push_back(1);t.push_back(2);t.push_back(3);vectorint ::iterator pos find(t.begin(), t.end(), 2);t.erase(pos);for (auto e : t){cout e ;e;} } 运行结果              swap #includeiostream #includevector using namespace std; int main() {vectorint t;t.push_back(1);t.push_back(2);t.push_back(3);vectorint ::iterator pos find(t.begin(), t.end(), 2);vectorint v(5, 7);//5个7swap(t, v);cout 换后的t: ;for (auto e : t){cout e ;e;}cout endl;cout 换后的v: ;for (auto e : v){cout e ;e;}cout endl; } 运行结果 operator[]  #includeiostream #includevector using namespace std; int main() {vectorint t;t.push_back(1);t.push_back(2);t.push_back(3);vectorint ::iterator pos find(t.begin(), t.end(), 2);cout t[2]; } 运行代码 其实到这里vector常用的功能已经说完了 list对于官方的介绍其实很简单其实就是一句话就可以概括带头的双向循环链表 用法与vector差不多完完全全一样这里就不在多介绍了给大家推荐一篇好的文章把 STL详解五—— list的介绍及使用_stl的list-CSDN博客 STL详解六—— list的模拟实现_stl list 作为参数-CSDN博客 如果要自己实现vector与list的模拟实现需要注意的一点就是深拷贝的问题 接下来我会再写几篇文章介绍string与vector与list一些特殊的小点帮助理解 就比如说string的\0问题string的capacity大小设计的特点空间增长的特点迭代器失效。 Vector 最大 最小值 索引 位置扩容的特点......
http://www.w-s-a.com/news/429356/

相关文章:

  • 太原手手工网站建设公司视频直播服务
  • 雷达图 做图网站wordpress首页怎么美化
  • 四川做网站设计公司价格vip解析网站怎么做的
  • 网站建设流程域名申请做化工的 有那些网站
  • 软件开发设计流程图seo搜索引擎官网
  • 外国小孩和大人做网站东富龙科技股份有限公司
  • 上线倒计时单页网站模板做网站的资金来源
  • 泸州市建设厅网站中小企业网络需求分析
  • asp网站版权做网页价格
  • 长春网站建设路关键词优化公司哪家好
  • 河南省建设银行网站年报天津设计师网站
  • 沙洋网站定制如果自己建立网站
  • 凡科网站怎么做建站关键字搜索网站怎么做
  • 小说网站建站程序企业邮箱地址
  • 福州市住房和城乡建设网站网站开发方案论文
  • 在线教育网站开发网站推广常用方法包括
  • 东莞高端品牌网站建设软件开发模型及特点
  • 个人网站的设计与实现的主要内容网站开发公司架构
  • 浏览器收录网站什么是新媒体营销
  • 上海营销网站建设公司下面哪个不是网页制作工具
  • 有哪些网站可以做设计比赛苏州设计公司排名前十
  • 公益网站建设需求车陂手机网站开发
  • 高端网站建设专业营销团队宁德网站建设51yunsou
  • 网站如何做cdn购物网站建设app开发
  • 简单的手机网站模板好看大方的企业网站源码.net
  • 沈阳住房和城乡建设厅网站网站个人备案做论坛
  • 企业建网站的目的开家网站建设培训班
  • 做怎么网站网站优化和推广
  • 建站工具 风铃网站每年空间域名费用及维护费
  • 网站开发工具 知乎工业软件开发技术就业前景