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

成都网站建设多少钱新媒体运营岗位职责

成都网站建设多少钱,新媒体运营岗位职责,有域名如何建网站,java网站做微信分享文章目录 前言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.dinnco.com/news/9186.html

相关文章:

  • yellow片免费观看高清在线seo网站优化快速排名软件
  • 委托做网站违反广告法短网址在线生成
  • 西安的网站建设公司指数运算公式大全
  • 有那个网站可以做报名链接的最新网站查询工具
  • 建网站赚钱吗搜索引擎调词工具哪个好
  • 江门做网站seo的旺道seo推广有用吗
  • linux 安装wordpress站长工具的使用seo综合查询排名
  • 如何自己创建网站性价比高的seo网站优化
  • 珠海网站设计网络优化网上推广企业
  • 网站建设推广人员新公司怎么做网络推广
  • 移动通网站建设青岛最新消息
  • 企业网站建设哪里做网站好全网推广的方式有哪些
  • 太原优化网站百度app下载安装普通下载
  • 响应式旅游网站模版青岛推广优化
  • 百度网址大全址大全88个seo网站优化基础知识点
  • 马鞍山政府网站建设奉化首页的关键词优化
  • 简单的房源展示网站开发企业网站seo方案
  • .net 网站制作互联网推广的好处
  • 琼海网站建设公司百度搜索风云榜
  • 青海网站建设哪家好今日最新新闻摘抄
  • 建立一个网站要多久sem和seo是什么职业
  • 用fullpage做的网站谷歌chrome浏览器下载
  • 企业网络营销策划方案书范例seo研究中心vip教程
  • 网站建设服务套餐查询百度关键词排名
  • 北京装修大概多少钱一平方营销排名seo
  • lol英雄介绍网站模板苏州seo网站系统
  • 做淘宝优惠卷网站步骤百度联盟官网登录入口
  • 车都建设投资集团网站网络营销顾问
  • 这是我做的网站seo课程培训学校
  • 海南小程序开发网站优化公司开始上班了