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

如何做logo模板下载网站局门户网站的建设

如何做logo模板下载网站,局门户网站的建设,网页制作与设计元素是什么,免费单页网站在线制作一、标准库中的vector类 1.vector的介绍 1. vector是表示可变大小数组的序列容器 #xff0c; 和数组一样#xff0c;vector可采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问#xff0c;和数组一样高效。但是又不像数组#xff0c;它的大…一、标准库中的vector类 1.vector的介绍 1. vector是表示可变大小数组的序列容器 和数组一样vector可采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问和数组一样高效。但是又不像数组它的大小是可以动态改变的而且它的大小会被容器自动处理。 2. 本质讲vector使用动态分配数组来存储它的元素。当新元素插入时候这个数组需要被重新分配大小以增加存储空间。其做法是分配一个新的数组然后将全部元素移到这个数组。就时间而言这是一个代价相对来说高的任务因为每当一个新的元素加入到容器的时候vector并不会每次都重新分配大小。 3. vector分配空间策略vector会分配一些额外的空间以适应可能的增长因为存储空间比实际需要的存储空间更大。不同的库采用不同的策略权衡空间的使用和重新分配。但是无论如何重新分配都应该是对数增长的间隔大小以至于在末尾插入一个元素的时候是在常数时间的复杂度完成的。 4. 因此vector占用了更多的存储空间为了获得管理存储空间的能力并且以一种有效的方式动态增长。 5. 与其它动态序列容器相比deque, list and forward_list vector在访问元素的时候更加高效在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作效率更低。比起list和forward_list统一的迭代器和引用更好  我们知道STL学习的三步能用明理能扩展因而我们的学习也是这个流程 2.vector的使用 记住学stl一定一定要学会看文档vector文档.vector在实际中非常的重要在实际中我们熟悉常 见的接口就可以。 2.1 常用的构造函数 vector(); vector类的默认构造函数构造一个没有元素的空容器 例如 void test() {vectorint v; } 都需要引用头文件vector vector(size_type n, const value_type val value_type()); 构造一个vector类对象并用n个val初始化 例如: void test() {//vectorint v;vector int v(5, 0);for (auto i : v){cout i ;} } int main() {test();return 0; } 运行结果: void test() {//vectorint v;vector int v(5, 2);for (auto i : v){cout i ;} } int main() {test();return 0; } 运行结果: 拷贝构造函数 vector(const vector x); 对于一个已有的vector容器进行拷贝,并生成一个新的容器 例如: void test() {//vectorint v;vector int v1(5, 2);vector int v2(v1);for (auto i : v2){cout i ;} } 运行结果:v 使用迭代器的初始化构造 Templateclass InputIteratorvector(InputIterator first, InputIterator last); 例如: void test() {//vectorint v;vector int v1(5, 2);//vector int v2(v1);vector int v2(v1.begin(),v1.end()-1);for (auto i : v2){cout i ;} } 运行结果v: 2.2 容量操作的接口 1.size size_type size() const; 获取有效元素的个数 例如: void test() {//vectorint v;vector int v1(5, 2);//vector int v2(v1);/*vector int v2(v1.begin(),v1.end()-1);*///for (auto i : v2)//{// cout i ;//}cout v1.size(); } int main() {test();return 0; } 运行结果: 2.capacity 获取容量大小 size_type capacity() const; 例如: void test() {vector int v1(5, 2);cout v1.capacity(); } 运行结果: 3.empty 判断容器是否为空 bool empty() const; 例如: ​ void test() {vector int v1(5, 2);vector int v2;cout v1.empty() endl;cout v2.empty() endl; }​ 运行结果: 4.resize void resize (size_type n, value_type val value_type()); 将有效元素的个数修改为n并且如果n大于原来的size多出来的地方用val填充 如果没有给出val就用0填充 例如: void test() {vector int v;cout v.size() endl;v.resize(20);cout v.size() endl;for (auto i : v){cout i ;}cout endl;v.resize(30);cout v.size() endl;for (auto i : v){cout i ;}cout endl;v.resize(10);cout v.size() endl;for (auto i : v){cout i ;} } 运行结果: 5.max_size size_type max_size() const; 返回最大大小 例如: ps:这里push_back是尾插 void test1() {vector int v;for (int i 0; i 100; i) v.push_back(i);cout v.size() endl; }运行结果: 6.reserve​​​​​ void reserve (size_type n); 改变容量大小 例如: void test1() {vector int v;cout v.capacity() endl;v.reserve(10);cout v.capacity() endl; } 运行结果: 2.3vector的访问及其遍历 1.operator[] reference operator[] (size_type n); const_reference operator[] (size_type n) const; 用下标直接访问 例如: void test() {vector int v(5,2);cout v[2] endl; } 运行结果: 因此我们也可以通过下标去遍历,这里就不多作演示 2.迭代器 这里大体和string类差不多 iterator begin();const_iterator begin() const;iterator end();const_iterator end() const; 迭代器用于获取容器中第一个元素的位置和最后一个元素的下一个位置 例如: ​ void test() {vector int v { 1,2,3,4,5,67,8,9,0,1 };vectorint::iterator it v.begin();while (it ! v.end()){cout *it ;it;} }​ 运行结果: 3.反向迭代器 这个整体和迭代器差不多 reverse_iterator rbegin();const_reverse_iterator rbegin() const;reverse_iterator rend();const_reverse_iterator rend() const; rbegin获取容器中最后一个元素的位置rend获取容器中的第一个元素的前一个位置 例如: ​ void test() {vector int v { 1,2,3,4,5,67,8,9,0,1 };vectorint::reverse_iterator rit v.rbegin();while (rit ! v.rend()){cout *rit ;rit;} }​ 运行结果: 4.at reference at (size_type n); const_reference at (size_type n) const; 返回容器中位置n处的元素的引用 例如: void test() {vector int v { 1,2,3,4,5,67,8,9,0,1 };cout v.at(5) endl;for (size_t i0;iv.size();i){cout v.at(i) ;} } 运行结果: 5.back reference back(); const_reference back() const; 返回容器中最后一个元素的引用 例如: void test() {vector int v { 1,2,3,4,5,67,8,9,0,123 };cout v.back() endl; } 运行结果: 6.front reference front(); const_reference front() const; 返回容器中第一个元素的引用 例如: void test() {vector int v { 1,2,3,4,5,67,8,9,0,123 };cout v.front() endl; } 运行结果: 2.4vector的增删查改 1.push_back(); void push_back(const value_type val); 从容器尾部插入一个元素 例如 void test() {vector int v { 1,2,3,4,5,67,8,9,0,123 };cout v.back() endl;v.push_back(99999);cout v.back() endl; } 运行结果: 2.pop_back() void test() {vector int v { 1,2,3,4,5,67,8,9,0,123 };cout v.back() endl;v.pop_back();cout v.back() endl; } 运行结果: 3.find() template class InputIterator, class TInputIterator find(InputIterator first, InputIterator last, const T val); 在两个迭代器区间寻找val并返回其所在处的迭代器 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout endl;vectorint::iterator it find(v.begin(), v.end(), 3);*it 30;for (auto i : v){cout i ;}cout endl; } 需要注意的是该函数并非vector的成员函数是标准库中的函数多个容器共用该find函数 4.insert() iterator insert (iterator position, const value_type val); void insert (iterator position, size_type n, const value_type val);template class InputIterator void insert (iterator position, InputIterator first, InputIterator last);在position位置插入元素 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout endl;vectorint::iterator it find(v.begin(), v.end(), 3);v.insert(it, 99999);for (auto i : v){cout i ;}cout endl; } 运行结果: 5.earse() iterator erase (iterator position); iterator erase (iterator first, iterator last); 删除position位置的元素或者 [firstlast) 区间的所有元素 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout endl;vectorint::iterator it find(v.begin(), v.end(), 3);v.erase(it);for (auto i : v){cout i ;}cout endl; } 运行结果: 6.swap() void swap (vector x); 交换两个vector的数据空间 例如 void test3() {vectorint v1 { 1,2,3,4,5,6,7,8,9,0 };vectorint v2 { 0,9,8,7,6,5,4,3,2,1 };v1.swap(v2);for (auto i : v1){cout i ;}cout endl; } 运行结果: 7.assign() template class InputIterator void assign (InputIterator first, InputIterator last); void assign (size_type n, const value_type val); 为vector指定新内容替换其当前内容并修改size 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout endl;v.assign(5, 4);for (auto i : v){cout i ;}cout endl; } 运行结果: 8.clear() void clear(); 从vector中删除所有元素不改变容量大小 例如 void test2() {vectorint v { 1,2,3,4,5,6 };for (auto i : v){cout i ;}cout size: v.size();cout endl;v.clear();for (auto i : v){cout i ;}cout size: v.size();cout endl; }运行结果: 本篇是对vector的初步理解,我们只需知道会用即可 如有错误,欢迎大家在评论区指出。
http://www.tj-hxxt.cn/news/217432.html

相关文章:

  • 柳州做网站人员重庆网站推广外包
  • 凡科做的微网站怎样连接公众号响应式个人网站模板下载
  • 遵义网站建设网帮你中文域名解析网站
  • 揭阳网站制作维护国产服务器前三强
  • 河北承德建设工程信息网站网页平台
  • 小说网站开发项目简介wordpress添加原创logo
  • 美食网站的建设论文郑州做网站电话
  • 找别人做网站怎么防止后门宁波网站推广专业的建站优化公司
  • 河间市做网站价格怎样做3d动画短视频网站
  • wordpress获取自定义字段的值寻找郑州网站优化公司
  • 门户网站制作方法公众号网页怎么制作
  • 网站有关于我们的好处衡水建立网站
  • 福州网站seo优化公司wordpress欢迎页面
  • ui设计哪里有培训班新乡网站建设waterseo
  • 合肥网站设计建泉州官方网站
  • 网站开发维护公司经营范围CMS网站建设优势
  • 杭州模板网站制作方案网站信管局备案
  • 织梦网站被挂马怎么处理福建做网站公司
  • 郑州网站建设最低价整站排名服务
  • 做服装要看国外哪些网站如何提高网站收录量
  • wordpress站内跳转wordpress虚拟商品主题
  • 设计招聘网站用火车采集器发布信息时 如何获取网站栏目id
  • 攻击jsp网站网站空间更换
  • 汕头网站建设方案优化网站后台网址后缀
  • 竞网做的网站公司网站制作都需要图片
  • 阿里云个人网站建设网站服务器错误
  • 软件开发视频网站建站公司现状
  • 建设网站好学吗沈阳网站开发久
  • 一站式网站手机端怎么做深圳网站建设价格多少
  • 开封建设网站缙云县建设局网站