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

建站教程pdfseo培训多少钱

建站教程pdf,seo培训多少钱,金华商城网站制作,专业做网站哪家好vector 一.vector容器简介二.vector的默认构造1. 语法和功能2.vector带参数的构造3.vector的赋值4.vector的大小5.vector数值操作 deque简介: 一.vector容器简介 • vector是将元素置于一个动态数组中加以管理的容器。 std::vector 是 C 标准模板库(STL…

vector

  • 一.vector容器简介
  • 二.vector的默认构造
    • 1. 语法和功能
    • 2.vector带参数的构造
    • 3.vector的赋值
    • 4.vector的大小
    • 5.vector数值操作
  • deque简介:

一.vector容器简介

• vector是将元素置于一个动态数组中加以管理的容器。
std::vector 是 C++ 标准模板库(STL)中的一个动态数组容器,它能在运行时动态调整大小,提供了高效的随机访问能力。
使用 std::vector 之前,需要包含 vector 头文件:

#include <vector》

二.vector的默认构造

1. 语法和功能

std::vector 的默认构造函数用于创建一个空的 vector 容器,即该容器不包含任何元素。其语法形式如下:

std::vector<Type> vec;vector<T> vecT; 
vector<int> vecInt; //一个存放int的vector容器。 
vector<float> vecFloat; //一个存放float的vector容器。 
vector<string> vecString; //一个存放string的vector容器。
.......            //尖括号内还可以设置指针类型或自定义类型。

这里的 Type 是 vector 所存储元素的类型,vec 是创建的 vector 对象的名称。默认构造函数创建的 vector 初始容量为 0,当向其中添加元素时,它会根据需要自动分配内存。

默认构造函数的作用
创建空向量:默认构造函数会创建一个没有任何元素的向量,其 size() 方法返回 0。
动态内存分配:虽然向量是空的,但内部可能已经分配了一定的内存(容量),以便后续添加元素时不需要频繁重新分配内存。

2.vector带参数的构造

  1. vector(beg,end);
    //构造函数将[beg, end)区间中的元素拷贝给本身。注意该区间是左闭右开的区间。
    要注意左闭右开

  2. vector(n,elem);
    //构造函数将n个elem拷贝给本身。

  3. vector(const vector &vec);
    //拷贝构造函数

int* arr[] = {1,2,3,4,5};vector<int> vecIntA(arr,arr+5) //由于是左闭右开,所以这里end要指向尾元素后一个地址vector<int> vecIntB(vecIntA.begin() , vecIntA.end()); 
vector<int>vecIntB(vecIntA.begin() , vecIntA.begin()+3);
vector<int> vecIntC(3,9); //此代码运行后,容器vecIntB就存放3个元素,每个元素的值是9。 
vector<int> vecIntD(vecIntA);

3.vector的赋值

  1. vector.assign(beg,end);
    //将[beg, end)区间中的数据拷贝赋值给本身。注意该区间是左闭右开的区间。
  2. vector.assign(n,elem);
    //将n个elem拷贝赋值给本身。
  3. vector& operator=(const vector &vec);
    //重载等号操作符
  4. vector.swap(vec);
    // 将vec与本身的元素互换。
  5. std::vector new_vector = std::move(vector_to_move);
    // 使用移动构造函数
    移动构造函数用于将一个向量的内容“移动”到另一个向量中,而不是复制。这种方式效率更高,因为它避免了不必要的复制操作。
int* arr[] = {1,2,3,4,5};
vector<int> vecIntA, vecIntB, vecIntC, vecIntD;
vecIntA.assign(arr,arr+5); //用其它容器的迭代器作参数。
vecIntB.assign(vecIntA.begin(), vecIntA.end());
vecIntC.assign(3,9);
vector<int> vecIntD;
vecIntD = vecIntA; vecIntA.swap(vecIntD);
std::vector<int> vecIntA = std::move(vecIntB);

4.vector的大小

  1. vector.size();
    //返回容器中元素的个数
  2. vector.empty();
    //判断容器是否为空
  3. vector.capacity()
    //返回容器的容量大小
  4. vector.resize(num);
    //重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
  5. vector.resize(num, elem);
    //重新指定容器的长度为num,若容器变长,则以elem值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。
  6. vector.reserve()
    //reserve 是 std::vector 的成员函数,用于预先分配内存,以避免多次内存重新分配。
  7. vector.clear();
    //用于清空向量中的所有元素,但不会释放内存。clear 会将向量的大小(size)设置为 0,但不会改变容量(capacity)。
    清空后,向量仍然可以继续使用,且不需要重新分配内存

5.vector数值操作

  1. vector.at(idx);
    //返回索引idx所指的数据,如果idx越界,抛出out_of_range异常。
  2. vector[idx];
    //返回索引idx所指的数据,越界时,运行直接报错
  3. vector.push_back();
    //用于在向量的末尾添加一个元素。
  4. vector.pop_back();
    //用于移除向量末尾的元素。
  5. vector.insert(pos,elem);
    //在pos位置插入一个elem元素的拷贝,返回新数据的位置。
    vector.insert(pos,n,elem);
    //在pos位置插入n个elem数据,无返回值。
    vector.insert(pos,beg,end);
    //在pos位置插入[beg,end)区间的数据,无返回值
  6. vector.clear();
    //移除容器的所有数据
    vec.erase(beg,end);
    //删除[beg,end)区间的数据,返回下一个数据的位置。
    vec.erase(pos);
    //删除pos位置的数据,返回下一个数据的位置。

deque简介:

  1. deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。
  2. deque在接口上和vector非常相似,在许多操作的地方可以直接替换。
  3. deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,
  4. deque头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除元素比较费时。

deque与vector在操作上几乎一样,deque多两个函数:

deque.push_front(elem); //在容器头部插入一个数据
deque.pop_front(); //删除容器第一个数据

http://www.dtcms.com/wzjs/494152.html

相关文章:

  • 武汉做网站找哪家阿亮seo技术顾问
  • wordpress 曹鹏免费外链网站seo发布
  • 百度推广 网站要备案吗google下载安卓版下载
  • 镇江网站制作公司哪有学电脑培训班
  • php可以做移动端网站seo文章生成器
  • 网站服务器建设软件在线bt种子
  • 石家庄哪里有做外贸网站的公司网站域名备案查询
  • 电商货源网站重庆关键词优化
  • 保定网站制作费用做游戏推广一个月能拿多少钱
  • 网站 用cms 侵权百度搜索风云排行榜
  • 深圳市网站建设有补贴吗上海seo网站策划
  • h5开网站开发教程镇江交叉口优化
  • 阿里巴巴做网站营销有没有用西安网站设计
  • 校园网站建设可行性分析seo推广一年要多少钱
  • 网站目录命名怎么给自己的公司做网站
  • wordpress重装教程长春seo外包
  • 网站建设费用进会计什么科目网络营销策划怎么写
  • 为什要做网站山东seo网络推广
  • 阿里云网站地图是怎么做的宣传渠道有哪些
  • 网站建设费用怎么做分录免费发布活动的平台
  • 安防网站模板优化seo可以从以下几个方面进行
  • 贵阳东方蜜蜂网站建设搜索引擎优化排名工具
  • 富通建设有限公司网站网站优化方式有哪些
  • wordpress the_titleseo推广工具
  • 会做网站有什么可以做吗seo推广软件费用
  • 百度网站主要提供的服务360点睛实效平台推广
  • 如何做微信个人网站百度精简版网页入口
  • net网站开发是什么免费浏览外国网站的软件
  • 泰安口碑好的网站建设山东一级造价师
  • 北京朝阳区网站建设公司2023年8月份新冠症状