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

wordpress视频网站用什么播放器搜索引擎优化策略应该包括

wordpress视频网站用什么播放器,搜索引擎优化策略应该包括,ai智能写作网站,房地产网站模板本篇我们来介绍STL的vector的内容。vector其实就是顺序表&#xff0c;vector的学习还是分为接口使用和模拟实现两大部分&#xff0c;本片就是介绍一下vector的使用。 1.vector的介绍及使用 vector文档介绍&#xff1a;vector - C Reference 在使用时需要加头文件#include <…

         本篇我们来介绍STL的vector的内容。vector其实就是顺序表,vector的学习还是分为接口使用模拟实现两大部分,本片就是介绍一下vector的使用。

1.vector的介绍及使用

vector文档介绍:vector - C++ Reference  在使用时需要加头文件#include <vector>.

vector是一个标准的模板。不知道什么是模板去看【C++】模板(初识):函数模板、类模板-CSDN博客

第一个模板参数是要存的数据类型,第二个模板参数是一个空间配置器,就是一个内存池,现在不用关心他是什么。 

我们在vector学习时一定要学会查文档。

string因为一些发展历史的原因,设计的接口比较多,比较冗余,vector相对来说就好很多,接口比string少很多。我们还是重点说经常使用的接口。

2.vector的构造函数、析构函数和operator=

构造函数

比如说下面的存int类型的顺序表。

vector<int> v1; //无参构造
vector<int> v2(10, 1); //10个1初始化
vector<int> v3(v2.begin(), v2.end());//迭代器区间初始化
vector<int> v4(++v2.begin(), --v2.end());//迭代器区间初始化

析构函数自动调用。

 

赋值运算符重载。

vector<int> v1; //无参构造
vector<int> v2(10, 1); //10个1初始化
vector<int> v3(v2.begin(), v2.end());//迭代器区间初始化
vector<int> v4(++v2.begin(), --v2.end());//迭代器区间初始化
v4 = v2; //v2,v4已存在,是赋值

3.vector的遍历

vector的遍历和string一样有三种方式:下标遍历、迭代器、范围for。这三种遍历详细的介绍在string类里面【C++】string类接口使用(万字详解)_sting怎么用-CSDN博客 第2.5节(string类对象的访问及遍历操作),不管是string还是vector,迭代器和范围for的用法都是一样的,类域不同而已,如果不清楚的建议先看string的2.5节。

3.1 下标遍历

vector<int> v2(10, 1); //10个1初始化
for (int i = 0; i < v2.size(); i++)
{cout << v2[i] << " ";
}
cout << endl;

因为vector也重载了operator[],所以也可以通过下标遍历。

3.2 迭代器

vector<int> v2(10, 1); //10个1初始化
vector<int>::iterator it = v2.begin();
while (it != v2.end())
{cout << *it << " ";++it;
}
cout << endl;

这里vector的迭代器要指定vector::类域,我们说string的迭代器的时候也是指定了string::类域。

反向迭代器和const迭代器就不演示了。 

3.3 范围for

vector<int> v2(10, 1); //10个1初始化
for (auto e : v2)
{cout << e << " ";
}
cout << endl;

 

 

4.reserve

这个部分别的接口就不多说了,看一眼就知道是什么。我们来说一下reserve扩容。

 用法大家都知道,我们看一下扩容机制,是不是一直按1.5倍扩。

void TestVectorExpandOP()
{vector<int> v;size_t sz = v.capacity();cout << "making bar grow:\n";for (int i = 0; i < 100; ++i){v.push_back(i);if (sz != v.capacity()){sz = v.capacity();cout << "capacity changed: " << sz << '\n';}}
}
int main()
{TestVectorExpandOP();return 0;
}

大概是1.5倍,有的地方做了特殊处理,比如向上取整,向下取整。

解决办法就是提前开空间,提前就开100个。

void TestVectorExpandOP()
{vector<int> v;size_t sz = v.capacity();v.reserve(100);   // 提前将容量设置好,可以避免一遍插入一遍扩容cout << "making bar grow:\n";for (int i = 0; i < 100; ++i){v.push_back(i);if (sz != v.capacity()){sz = v.capacity();cout << "capacity changed: " << sz << '\n';}}
}

同样的,我们传n过去,编译器会开大于等于n的空间。

但是对于下面的第二种情况,string和vector处理方式不同。

 

5.resize

reserve是绝对不会改变size的,只会对capacity产生影响,但是resize会改变size,还会改变capacity。

 

 第二个参数val传的话,多出来的所有都存为val。直接代码演示。

vector<int> v(10, 1);//10个1初始化
v.resize(5); //n<size情况

 

vector<int> v(10, 1);//10个1初始化
v.reserve(20);//开20个空间
//size < n < capacity,不传第二个参
v.resize(15); 

 

vector<int> v(10, 1);//10个1初始化
v.reserve(20);//开20个空间
//size < n < capacity,传第二个参
v.resize(15, 2); 

vector<int> v(10, 1);//10个1初始化
v.reserve(20);//开20个空间
//n > capacity,不传第二个参
v.resize(23); 

 

vector<int> v(10, 1);//10个1初始化
v.reserve(20);//开20个空间
//n > capacity,传第二个参
v.resize(23, 2); 

 resize大概就是这样。

6.insert和erase

尾插和尾删就不多说了,这里说一下insert。

vector的insert不支持下标了,都是迭代器

vector<int> v(10, 1);
v.insert(v.begin(), 2);//头插
v.insert(v.end(), 3);//尾插

 

vector<int> v(10, 1);
v.insert(v.begin(), 2);//头插
v.insert(v.end(), 3);//尾插
v.insert(v.begin() + 3, 4);//第3个位置插入

 

 

 erase也不支持下标,只支持迭代器。

vector<int> v(10, 1);
v.insert(v.begin(), 2);//头插
v.insert(v.end(), 3);//尾插
v.insert(v.begin() + 3, 4);//第3个位置插入
v.erase(++v.begin());//删第2个位置数据

 

7.vector支持流插入和流提取吗?

不支持。我们会发现vector文档里面并没有重载<<和>>,因为vector的输入输出有很多不确定性。

这个要注意一下。

别的接口就不多说了,很多和string接口用法一致。所以一定要打好string的基础,vector学起来就比较轻松。【C++】string类接口使用(万字详解)_sting怎么用-CSDN博客

http://www.bjxfkj.com.cn/article/859.html

相关文章:

  • 求可以做问卷测试的网站企业网站seo
  • 宛城区网站建设奇零seo赚钱培训
  • wordpress淘宝api接口插件湛江seo推广公司
  • 电影网站制作教程湖南搜索引擎推广平台
  • 坪山模板网站建设公司排名前十的大学
  • 电商设计师常用的网站百度客户端电脑版下载
  • 编写网站用什么语言文章推广平台
  • wordpress企业站主题下载营销的三个基本概念是什么
  • 开封市网站开发公司南宁seo团队哪家好
  • 建设网站专业公司哪家好网站网页的优化方法
  • 在线做热图的网站营销型网站建设公司价格
  • 信息技术制作网站沈阳网站建设
  • 广州网站设计培训网络游戏推广员
  • 北京网站seo策划百度seo优化软件
  • wordpress的发件邮箱是多少广东公司搜索seo哪家强
  • 目前基金会网站做的比较好的谷歌搜索引擎网页版入口
  • 电商推广平台哪个好seo搜索引擎优化简历
  • 那种网站后台最好深圳全网营销平台排名
  • java php做网站百度图片识别搜索引擎
  • 浏阳疫情发布纵横seo
  • 网站过度优化首页被k广东疫情防控措施
  • 河北省建设厅网站登陆设置环球军事新闻最新消息
  • 家里电脑可以做网站空间吗商丘seo公司
  • 政府门户网站建设取得实质进展seo外包服务
  • 做平台网站需要多少钱爱战网关键词工具
  • 昆明网站制作方案定制seo与sem的区别
  • 长沙专业做网站郑州网络营销推广
  • 各行各业网站建设指数函数图像及性质
  • 手机网站建设多少钱一个做电商需要什么条件
  • 日照园林建设发展有限公司网站怎样做平台推广