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

个人网站有必要备案吗新乡百度关键词优化外包

个人网站有必要备案吗,新乡百度关键词优化外包,成都品牌设计策划,wordpress 会员可见文章目录 前言1. vector 概述 1.1 vector 的特点 2. vector 的基本用法 2.1 头文件2.2 声明和初始化2.3 访问元素2.4 修改元素2.5 修改元素 3. vector 的高级用法 3.1 迭代器3.2 算法与vector配合3.3 二维vector3.4 vector 的性能优化 4. vector 的注意事项5. 实际应用示例总结…

文章目录

  • 前言
  • 1. vector 概述
    • 1.1 vector 的特点
  • 2. vector 的基本用法
    • 2.1 头文件
    • 2.2 声明和初始化
    • 2.3  访问元素
    • 2.4 修改元素
    • 2.5 修改元素
  • 3. vector 的高级用法
    • 3.1 迭代器
    • 3.2 算法与vector配合
    • 3.3 二维vector
    • 3.4 vector 的性能优化
  • 4. vector 的注意事项
  • 5. 实际应用示例
  • 总结

1. vector 概述

vector 是 C++ 标准模板库(STL)中最重要、最常用的序列式容器之一,它封装了动态大小数组的功能,提供了比原始数组更安全、更便捷的操作接口。vector 在 STL 容器家族中占据核心地位,是大多数 C++ 程序员的首选容器,vector 是 C++ 标准模板库 (STL) 中的一个序列容器,它能够动态改变大小,提供了快速的随机访问能力。vector 在内存中是连续存储的,类似于数组,但比数组更灵活。

1.1 vector 的特点

  • 动态大小:可以根据需要自动调整大小快速随机访问:支持通过下标直接访问元素

  • 内存连续:元素在内存中是连续存储的自动内存管理:自动处理内存分配和释放

2. vector 的基本用法

2.1 头文件

使用 vector 需要包含头文件:

#include <vector>

2.2 声明和初始化

// 空vector
std::vector<int> vec1;// 指定初始大小
std::vector<int> vec2(10); // 10个元素,默认值为0// 指定初始大小和值
std::vector<int> vec3(5, 100); // 5个元素,每个都是100// 使用初始化列表 (C++11)
std::vector<int> vec4 = {1, 2, 3, 4, 5};// 从数组初始化
int arr[] = {1, 2, 3};
std::vector<int> vec5(arr, arr + sizeof(arr)/sizeof(int));// 从另一个vector初始化
std::vector<int> vec6(vec4.begin(), vec4.end());

2.3  访问元素

#include<vector>
#include<iostream>
int main()
{std::vector<int> v = {10, 20, 30, 40, 50};// 使用下标访问
int a = v[2]; // 30// 使用at()访问,会进行边界检查
int b = v.at(3); // 40// 访问第一个和最后一个元素
int first = v.front(); // 10
int last = v.back();   // 50// 获取底层数组指针
int* p = v.data(); // 指向第一个元素的指针
}

2.4 修改元素

v[1] = 25;       // 修改第二个元素
v.at(2) = 35;    // 修改第三个元素

2.5 添加元素

// 在末尾添加元素
v.push_back(60);// 在指定位置插入元素
v.insert(v.begin() + 2, 15); // 在第三个位置插入15// 插入多个相同元素
v.insert(v.end(), 3, 100); // 在末尾插入3个100

2.6 删除元素

// 删除末尾元素
v.pop_back();// 删除指定位置元素
v.erase(v.begin() + 1); // 删除第二个元素// 删除指定范围的元素
v.erase(v.begin() + 1, v.begin() + 3); // 删除第二到第三个元素// 清空vector
v.clear();

​​​​​​​实际删除的是区间 [first, last),即包含 first,但不包含 last

2.7 大小和容量

// 获取元素数量
int size = v.size();// 检查是否为空
bool isEmpty = v.empty();// 获取当前容量
int capacity = v.capacity();// 改变大小
v.resize(10); // 调整为10个元素,新增元素默认初始化// 预留空间
v.reserve(100); // 预留100个元素的空间,但不改变size

reserve和resize具体的区别resize会改变size而reserve不会改变size大小

3. vector 的高级用法

3.1 迭代器

迭代器是一种行为类似指针的对象,它能够遍历容器中的元素,并允许访问这些元素。迭代器是容器和算法之间的桥梁,使得算法可以独立于容器类型工作。

std::vector<int> v = {1, 2, 3, 4, 5};// 正向迭代器
for (auto it = v.begin(); it != v.end(); ++it) {std::cout << *it << " ";
}// 反向迭代器
for (auto rit = v.rbegin(); rit != v.rend(); ++rit) {std::cout << *rit << " ";
}// 常量迭代器
for (auto cit = v.cbegin(); cit != v.cend(); ++cit) {std::cout << *cit << " ";
}

3.2 算法与vector配合

#include <algorithm>// 排序
std::sort(v.begin(), v.end());// 查找
auto it = std::find(v.begin(), v.end(), 3);
if (it != v.end()) {std::cout << "Found at position: " << it - v.begin();
}// 反转
std::reverse(v.begin(), v.end());// 删除特定元素
v.erase(std::remove(v.begin(), v.end(), 100), v.end());

3.3 二维vector

// 声明二维vector
std::vector<std::vector<int>> matrix;// 初始化5x5矩阵,初始值为0
std::vector<std::vector<int>> matrix(5, std::vector<int>(5, 0));// 访问元素
matrix[2][3] = 10;// 遍历二维vector
for (const auto& row : matrix) {for (int val : row) {std::cout << val << " ";}std::cout << std::endl;
}

3.4 vector 的性能优化

// 1. 预先分配足够空间避免多次重新分配
std::vector<int> v;
v.reserve(1000); // 预先分配空间// 2. 使用emplace_back代替push_back避免临时对象
v.emplace_back(10); // 直接在vector中构造对象// 3. 使用swap释放内存
std::vector<int>().swap(v); // 清空并释放内存// 4. 避免在vector中间频繁插入删除

4. vector 的注意事项

  1. 迭代器失效:当vector扩容或删除元素时,迭代器可能会失效

std::vector<int> v = {1, 2, 3, 4};
auto it = v.begin() + 2;
v.push_back(5); // 可能导致迭代器失效
// 此时使用it是未定义行为

  2.  越界访问:使用[]操作符不会检查边界,at()会抛出异常

5. 实际应用示例

 学生成绩管理系统

#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>struct Student {std::string name;int score;
};int main() {std::vector<Student> students;// 添加学生students.push_back({"Alice", 90});students.emplace_back("Bob", 85); // 使用emplace_back更高效students.emplace_back("Charlie", 92);students.emplace_back("David", 78);// 按成绩排序std::sort(students.begin(), students.end(), [](const Student& a, const Student& b) {return a.score > b.score;});// 计算平均分double avg = std::accumulate(students.begin(), students.end(), 0.0,[](double sum, const Student& s) {return sum + s.score;}) / students.size();// 输出结果std::cout << "Ranking:\n";for (const auto& s : students) {std::cout << s.name << ": " << s.score << "\n";}std::cout << "Average score: " << avg << "\n";return 0;
}

总结

​​​​​​​vector 是 C++ 中最常用的容器之一,它结合了数组的高效随机访问和动态大小的灵活性。掌握 vector 的使用对于编写高效、现代的 C++ 代码至关重要。在实际开发中,应根据具体需求选择合适的容器,但 vector 在大多数情况下都是一个很好的默认选择。

http://www.mnyf.cn/news/49639.html

相关文章:

  • 广州地铁站路线图怎么去推广自己的公司
  • 网站需要公安备案源云推广
  • 汕头市潮南区疫情最新情况长春关键词优化排名
  • 上杭网站东莞百度推广优化公司
  • 深圳网站开发工资搜什么关键词能搜到好片
  • 做网站没流量seo优化要做什么
  • 一品威客网是做什么的谷歌优化排名怎么做
  • 如何做网站报价国内哪个搜索引擎最好用
  • 做传奇私服网站客源引流推广app
  • 做图片网站用什么程序今日热点新闻
  • 中山市网站制作网上推销产品的软件
  • 南京做网站企业深圳aso优化
  • 网站建设九步走seo体系
  • 城乡建设官方网站线上如何做推广
  • 北京西城区住房和城乡建设委员会网站有效的网络推广
  • wordpress写文章教程百度推广优化中心
  • 自建本地网站服务器wordpress网站优化培训班
  • 大连网站制作学校百度竞价最低点击一次多少钱
  • 青岛网站建设公司客服网站搭建
  • 网站SEO建设摘要网站入口
  • 南通专业做网站班级优化大师免费下载电脑版
  • 百度首页排名优化价格上海网络seo
  • 中山网站建设方案托管如何优化网络延迟
  • 企业培训师资格证报考2022seo优化销售话术
  • 网站主色调简介怎么说网页制作在线生成
  • 汕头网站建设方案书天津seo方案
  • 武汉微网站微官网网站推广的优化
  • 网站建设电话销售术语网络营销策划案范本
  • 自己做菠菜网站百度关键词排名推广话术
  • 蜗牛星际做网站服务器百度竞价多少钱一个点击