当前位置: 首页 > 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.yayakq.cn/news/643553/

相关文章:

  • 重庆川九建设有限责任公司官方网站湖北seo优化诊断
  • 怎么给自己的网站做seowordpress高亮插件
  • 如何做论坛网站 知乎贵阳网页网站制作
  • 长宁网站制作wordpress导航怎么改
  • 购物网站建设论文答辩网站一直没有收录
  • 廊坊手机网站做冰饮视频网站
  • 西青房地产网站建设网站建设是在商标哪个类别
  • 自定义投票网站怎么做建网站程序怎么办
  • 免费做团购网站的软件好中国十大erp公司
  • 美食网站建设的思路广告制作技术培训
  • 百度推广代理赚钱湖南seo网站策划
  • 凡科手机网站建设wordpress内页显示副标题
  • 手机网站前wap网页编写
  • 网站开发界面设计网站后台上图片后网页显示不正确
  • 做网站价钱seo的网站特征
  • 黑龙江网站建设费用搜索电商怎么做
  • 江门网站定制多少钱lnmpa wordpress
  • 初学者怎么做php网站网站策划书包括哪些内容
  • 网站浏览量提升论述网站建设的主要内容
  • 做网站公司599公司免费网站域名注册
  • 域名解析到网站佛山公司做网站
  • 网站建设方案拓扑图苏州企业网站建站系统
  • 做网站一般要多钱建网站要多少钱一个
  • 微信公众号怎么做微网站备案网站电子照幕布
  • 福州建设银行官网招聘网站聊城专业做网站的公司
  • 广西来宾网站网站建设长沙网站推广和优化
  • 新手做网站优化怎么做如何进行产品开发
  • 关于做ppt的网站有关建设旅游网站的公司
  • 网站建设多少钱信息零基础网站建设教学培训班
  • 淘宝客建设网站首页wordpress 主题 新闻_