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

模板的种类网站优化排名金苹果下拉

模板的种类,网站优化排名金苹果下拉,做淘口令网站,珠海响应式网站制作前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能教程 文章目录 一、vector 容器1. 基本特性2. 基本操作3. 注意事项 二、应用场景1. 应用场景2. 案例案例一&#xff1…

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:人工智能教程

文章目录

  • 一、vector 容器
    • 1. 基本特性
    • 2. 基本操作
    • 3. 注意事项
  • 二、应用场景
    • 1. 应用场景
    • 2. 案例
      • 案例一:存储动态大小的数据集合
      • 案例二:实现栈
  • 三、相关链接

一、vector 容器

C++ 中的 vector 是一个非常常用的容器(container),它属于 STL(Standard Template Library,标准模板库)的一部分。vector 是一个能够存储具有相同类型元素的动态数组,这意味着它可以在运行时动态地增加或减少大小。与普通的数组不同,vector 会自动管理其存储空间,并在需要时重新分配内存以容纳更多的元素。

1. 基本特性

  • 动态数组vector 的大小可以在运行时改变,即可以动态地添加或删除元素。
  • 连续内存vector 中的元素存储在连续的内存位置中,这意味着可以像普通数组一样通过索引快速访问任何元素(即使用 operator[])。
  • 自动内存管理vector 自动管理其存储空间的分配和释放,无需用户手动处理。
  • 随机访问迭代器:由于 vector 的元素存储在连续的内存中,它支持随机访问迭代器,这意味着可以直接通过索引访问任何元素。

2. 基本操作

  1. 包含头文件:使用 vector 之前需要包含头文件 <vector>
#include <vector>
  1. 创建 vector
std::vector<int> vec; // 创建一个空的 int 类型的 vector
std::vector<int> vecWithValues = {1, 2, 3, 4, 5}; // 创建一个包含 5 个整数的 vector
  1. 添加元素
vec.push_back(6); // 在 vec 的末尾添加一个元素 6
vec.insert(vec.begin(), 0); // 在 vec 的开始位置插入一个元素 0
  1. 访问元素
int firstElement = vec[0]; // 访问第一个元素
int lastElement = vec.back(); // 访问最后一个元素
int secondElement = *(vec.begin() + 1); // 使用迭代器访问第二个元素
  1. 删除元素
vec.pop_back(); // 删除 vec 的最后一个元素
vec.erase(vec.begin()); // 删除 vec 的第一个元素
// 删除特定位置的元素
vec.erase(vec.begin() + 2); // 删除索引为 2 的元素(注意,索引是从 0 开始的)
  1. 遍历 vector
for (int i = 0; i < vec.size(); ++i) {std::cout << vec[i] << " ";
}
std::cout << std::endl;// 使用迭代器
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {std::cout << *it << " ";
}
std::cout << std::endl;// 使用 C++11 的范围 for 循环
for (int value : vec) {std::cout << value << " ";
}
std::cout << std::endl;

3. 注意事项

  • 内存分配:当 vector 的大小增加时,它可能需要重新分配内存以存储更多的元素。这通常涉及复制或移动所有现有元素到新分配的内存中,这可能会是一个耗时的操作。
  • 迭代器失效:在 vector 中添加或删除元素时,特别是通过 inserterase 方法时,可能会使指向被修改区域的迭代器失效。因此,在迭代过程中修改 vector 时需要特别小心。

vector 是 C++ 中一个非常强大且灵活的容器,几乎可以替代所有需要动态数组的场景。

二、应用场景

vector 容器在 C++ 中有着广泛的应用场景,主要得益于其动态数组的特性,能够方便地存储和操作任意数量的同类型元素。以下是一些 vector 容器的应用场景及详细案例:

1. 应用场景

  1. 存储动态大小的数据集合
  • 当需要存储的数据量在程序运行时可能发生变化时,vector 是一个很好的选择。它可以动态地增加或减少大小,以适应不同的数据需求。
  1. 代替数组
  • 在许多情况下,vector 可以作为数组的替代品,提供更多的功能和便利的操作。例如,vector 支持动态扩容,而数组的大小在定义后就不能改变。
  1. 实现栈和队列
  • 可以使用 vector 来实现栈和队列等数据结构。通过 push_back() 方法可以在 vector 的末尾添加元素,模拟栈的压栈操作;通过 pop_back() 方法可以删除 vector 的最后一个元素,模拟栈的弹栈操作。对于队列,可以使用 insert()erase() 方法在 vector 的前端进行插入和删除操作,但通常使用 deque(双端队列)更为合适,因为它在两端都支持快速插入和删除。
  1. 实现动态数组
  • 由于 vector 的大小可以动态调整,因此它非常适合用来实现动态数组。这在需要频繁增减元素的情况下尤为有用。
  1. 存储容器元素
  • vector 可以作为其他容器的元素,实现复杂的数据结构。例如,可以创建一个 vector<vector<int>> 来表示二维数组或矩阵。
  1. 作为函数参数
  • 可以将 vector 作为函数的参数传递,方便进行数据的传递和处理。由于 vector 支持复制构造函数和赋值操作,因此可以很容易地在函数之间传递 vector 对象。

2. 案例

案例一:存储动态大小的数据集合

假设我们需要存储一个班级中所有学生的分数,但事先不知道学生的具体数量。这时,可以使用 vector 来存储这些分数。

#include <iostream>
#include <vector>int main() {std::vector<int> scores;// 假设我们不知道学生的具体数量,但可以动态地添加分数scores.push_back(90);scores.push_back(85);scores.push_back(95);// 遍历并打印分数for (int score : scores) {std::cout << score << " ";}std::cout << std::endl;return 0;
}

案例二:实现栈

使用 vector 实现一个简单的栈结构,支持压栈和弹栈操作。

#include <iostream>
#include <vector>class Stack {
private:std::vector<int> data;public:void push(int value) {data.push_back(value);}int pop() {if (!data.empty()) {int top = data.back();data.pop_back();return top;}throw std::out_of_range("Stack is empty!");}bool isEmpty() const {return data.empty();}
};int main() {Stack s;s.push(1);s.push(2);s.push(3);while (!s.isEmpty()) {std::cout << s.pop() << " ";}std::cout << std::endl;return 0;
}

在这里插入图片描述

三、相关链接

  1. Visual Studio Code下载地址
  2. Sublime Text下载地址
  3. 「C++系列」C++简介、应用领域
  4. 「C++系列」C++ 基本语法
  5. 「C++系列」C++ 数据类型
  6. 「C++系列」C++ 变量类型
  7. 「C++系列」C++ 变量作用域
  8. 「C++系列」C++ 常量知识点-细致讲解
  9. 「C++系列」C++ 修饰符类型
  10. 「C++系列」一篇文章说透【存储类】
  11. 「C++系列」一篇文章讲透【运算符】
  12. 「C++系列」循环
  13. 「C++系列」判断
  14. 「C++系列」函数/内置函数
  15. 「C++系列」数字/随机数
  16. 「C++系列」数组
  17. 「C++系列」字符串
  18. 「C++系列」指针
  19. 「C++系列」引用
  20. 「C++系列」日期/时间
  21. 「C++系列」输入/输出
  22. 「C++系列」数据结构

文章转载自:
http://catalina.c7622.cn
http://toothlet.c7622.cn
http://syren.c7622.cn
http://moochin.c7622.cn
http://prettify.c7622.cn
http://dyspeptic.c7622.cn
http://yolk.c7622.cn
http://proceleusmatic.c7622.cn
http://naumachia.c7622.cn
http://pentalogy.c7622.cn
http://anathematic.c7622.cn
http://fatalism.c7622.cn
http://mocker.c7622.cn
http://winfred.c7622.cn
http://engraphy.c7622.cn
http://valediction.c7622.cn
http://optimistical.c7622.cn
http://redeployment.c7622.cn
http://gimel.c7622.cn
http://facedown.c7622.cn
http://solemnify.c7622.cn
http://negotiatory.c7622.cn
http://cockcrow.c7622.cn
http://book.c7622.cn
http://gerontophilia.c7622.cn
http://terrella.c7622.cn
http://roselle.c7622.cn
http://gateman.c7622.cn
http://asyntactic.c7622.cn
http://provoking.c7622.cn
http://trolly.c7622.cn
http://apocrine.c7622.cn
http://speedlight.c7622.cn
http://mishandled.c7622.cn
http://buhlwork.c7622.cn
http://snockered.c7622.cn
http://eggcup.c7622.cn
http://phycology.c7622.cn
http://greenleek.c7622.cn
http://menstruous.c7622.cn
http://debatable.c7622.cn
http://embassy.c7622.cn
http://u.c7622.cn
http://blotter.c7622.cn
http://tpi.c7622.cn
http://labuan.c7622.cn
http://autotomize.c7622.cn
http://inertia.c7622.cn
http://cookhouse.c7622.cn
http://monad.c7622.cn
http://prorate.c7622.cn
http://balsa.c7622.cn
http://snovian.c7622.cn
http://airtel.c7622.cn
http://abstraction.c7622.cn
http://semiannular.c7622.cn
http://oxfly.c7622.cn
http://felinity.c7622.cn
http://partisanship.c7622.cn
http://vitellophag.c7622.cn
http://excavation.c7622.cn
http://southernly.c7622.cn
http://peddle.c7622.cn
http://repulsion.c7622.cn
http://stimulation.c7622.cn
http://nucleoprotein.c7622.cn
http://fuzznuts.c7622.cn
http://nistru.c7622.cn
http://pwd.c7622.cn
http://sorbian.c7622.cn
http://oxyparaffin.c7622.cn
http://unwomanly.c7622.cn
http://sanguicolous.c7622.cn
http://metascope.c7622.cn
http://infusionism.c7622.cn
http://dissenter.c7622.cn
http://reflourish.c7622.cn
http://interjectional.c7622.cn
http://megarad.c7622.cn
http://morass.c7622.cn
http://figurante.c7622.cn
http://outsang.c7622.cn
http://valvular.c7622.cn
http://selenotropic.c7622.cn
http://sigmate.c7622.cn
http://homogenous.c7622.cn
http://mortgagee.c7622.cn
http://mauve.c7622.cn
http://photogun.c7622.cn
http://scarify.c7622.cn
http://bbl.c7622.cn
http://arranging.c7622.cn
http://lincrusta.c7622.cn
http://unpierceable.c7622.cn
http://fingersmith.c7622.cn
http://etude.c7622.cn
http://kionectomy.c7622.cn
http://lunation.c7622.cn
http://absorber.c7622.cn
http://hajji.c7622.cn
http://www.zhongyajixie.com/news/67504.html

相关文章:

  • 网站页面设计需求公司做网站一般多少钱
  • 游仙区专业网站建设价格网站seo视频
  • 想做网站多少钱网站测试的内容有哪些
  • 网站域名注册信息查询百度导航下载安装手机导航
  • wordpress 后台登陆美化网站seo公司
  • 网站建设分工百度推广管理平台
  • 个人网页的内容seo关键词排名优化专业公司
  • hibernate适合网站开发吗seo客服
  • 做a 视频在线观看网站seo快照推广
  • 咸宁做网站哪家好职业培训网
  • 建设网站商城后台系统seo的培训网站哪里好
  • 郑州网站建设企起登封网站设计
  • 软件开发商网站百度网络电话
  • 策划公司属于什么行业百度seo排名在线点击器
  • 行业门户型网站域名交易中心
  • 涿州做网站建设全网搜索
  • 做网站需要的大图如何做推广宣传
  • 镇江哪里做网站专业推广公司
  • html网站开发心得体会上海有哪些优化网站推广公司
  • 网线制作步骤图片六六seo基础运营第三讲
  • 网站系统介绍软文代写网
  • asp.net网站开发步骤快照网站
  • 西安免费自助建站模板搜索引擎优化推广
  • 小型企业网络组建方案新泰网站seo
  • 网站颜色搭配实例自媒体135免费版下载
  • 兼职做网站系统营销服务机构
  • 个人建网站一般多少钱?中国企业500强
  • 赚钱做任务的网站有哪些成人职业技术培训学校
  • 丽水城乡建设局网站湖北seo网站推广
  • 做响应式网站设计师如何布局呢seo入门免费教程