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

做网站商城的小图标软件樟树市城乡规划建设局网站

做网站商城的小图标软件,樟树市城乡规划建设局网站,怎么百度上搜到自己的网站,卓业网站建设当初自学 c 与 c 语言时#xff0c;一直被指针弄的云里雾里。后来 c 中引入了容器#xff0c;避免了指针。但是#xff0c;一些教材把容器的章节放在书本中后面的章节#xff0c;太不合理。应该把这种方便的功能放到前面#xff0c;这样一些初学者就不会遇到太多生硬难懂的…当初自学 c 与 c 语言时一直被指针弄的云里雾里。后来 c 中引入了容器避免了指针。但是一些教材把容器的章节放在书本中后面的章节太不合理。应该把这种方便的功能放到前面这样一些初学者就不会遇到太多生硬难懂的知识点从而对这个语言望而却步了。这篇博客让 AI 总结了相关知识点方便自己以后查阅。 总结 对于定长数组用 array不定长数组用 vector计算规模巨大实在想优化计算速度用指针 文章目录 一、 **C 中的 std::vector****1. std::vector 基本使用****(1) 引入 vector 头文件** **2. std::vector 的核心方法****3. vector 详细示例****(1) 创建和初始化****(2) push_back() 和 pop_back()****(3) insert() 和 erase()** **4. vector 与普通数组的对比****5. 总结** 二、 **C 中的 std::array****1. std::array 的特点****2. std::array 的基本用法****(1) 创建与初始化** **3. std::array 的常用方法****4. std::array 方法示例****5. std::array 与 C 风格数组的对比****6. std::array 在 STL 算法中的使用****7. 总结** 一、 C 中的 std::vector 在 C 中std::vector 是 动态数组容器提供了自动扩展、随机访问等功能是 std::array 和 std::list 之间的高效选择。 std::vector 定义在 vector 头文件中属于 STL标准模板库 的一部分。 1. std::vector 基本使用 (1) 引入 vector 头文件 #include iostream #include vectorint main() {std::vectorint v {1, 2, 3, 4, 5};// 遍历 vectorfor (int i : v) {std::cout i ;}return 0; }输出 1 2 3 4 52. std::vector 的核心方法 方法作用push_back(value)在末尾添加元素pop_back()删除末尾元素size()返回元素个数capacity()返回当前容量resize(n)调整大小可能会丢弃元素clear()清空所有元素empty()判断是否为空insert(it, value)在指定位置插入元素erase(it)删除指定位置的元素front() / back()返回首/尾元素at(i)获取指定索引元素带边界检查operator[]获取指定索引元素无边界检查 3. vector 详细示例 (1) 创建和初始化 #include iostream #include vectorint main() {std::vectorint v1; // 空 vectorstd::vectorint v2(5, 100); // 5 个 100std::vectorint v3 {10, 20, 30}; // 列表初始化std::vectorint v4(v3); // 复制 v3std::vectorint v5(v3.begin(), v3.end()); // 迭代器初始化for (int x : v2) std::cout x ; // 输出: 100 100 100 100 100 }(2) push_back() 和 pop_back() #include iostream #include vectorint main() {std::vectorint v;v.push_back(1);v.push_back(2);v.push_back(3);std::cout Size: v.size() std::endl; // 3std::cout Last Element: v.back() std::endl; // 3v.pop_back(); // 删除 3std::cout Size after pop: v.size() std::endl; // 2 }输出 Size: 3 Last Element: 3 Size after pop: 2(3) insert() 和 erase() #include iostream #include vectorint main() {std::vectorint v {1, 2, 3, 4, 5};v.insert(v.begin() 2, 99); // 在索引 2 位置插入 99v.erase(v.begin() 1); // 删除索引 1 位置的元素for (int x : v) std::cout x ; }输出 1 99 3 4 54. vector 与普通数组的对比 特性std::vector普通数组C-style array大小可变✅ 自动扩展❌ 固定大小安全性✅ 带边界检查 (at())❌ 无边界检查初始化✅ 支持列表初始化⚠️ 手动初始化复制✅ 支持赋值 ()❌ 需要 memcpy()性能⚠️ 可能有额外开销✅ 更快不涉及动态分配STL 支持✅ 可与 std::algorithm 配合❌ 手动实现排序、查找等 5. 总结 std::vector 是 C 动态数组支持自动扩展、插入、删除等功能。比普通数组更安全支持 size(), push_back(), insert(), erase() 等操作。适用于大部分需要动态管理数组的场景但在高性能需求下可以考虑 std::array 或 std::deque。 二、 C 中的 std::array 在 C 中std::array 是 STL标准模板库 提供的 定长数组容器它是 std::vector 和 C 风格数组 (C-style array) 之间的折中方案提供了更安全且性能优越的数组管理方式。 1. std::array 的特点 特点描述固定大小std::arrayT, N 的大小 N 在编译期确定无法动态改变。支持 std::vector 风格的接口拥有 .size(), .at(), .front(), .back(), .fill() 等方法。支持 std::algorithm可与 std::sort(), std::reverse() 等标准库算法配合使用。内存布局与 C 风格数组相同连续存储性能与 C-style array 相当但 更安全。 2. std::array 的基本用法 (1) 创建与初始化 #include iostream #include arrayint main() {std::arrayint, 5 arr1 {1, 2, 3, 4, 5}; // 列表初始化std::arrayint, 5 arr2 {0}; // 仅初始化第一个元素为 0其余为 0std::arrayint, 5 arr3{}; // 全部初始化为 0for (int num : arr1) std::cout num ; // 1 2 3 4 5return 0; }3. std::array 的常用方法 方法作用size()返回数组大小固定值 N。at(index)获取指定索引的元素带边界检查。operator[]获取指定索引的元素不带边界检查。front()获取第一个元素。back()获取最后一个元素。fill(value)将所有元素设置为 value。swap(other)交换两个 std::array 的内容。data()返回指向底层数组的指针。 4. std::array 方法示例 #include iostream #include arrayint main() {std::arrayint, 5 arr {10, 20, 30, 40, 50};std::cout Size: arr.size() std::endl; // 5std::cout First: arr.front() std::endl; // 10std::cout Last: arr.back() std::endl; // 50arr.fill(100); // 全部赋值为 100for (int x : arr) std::cout x ; // 100 100 100 100 100return 0; }输出 Size: 5 First: 10 Last: 50 100 100 100 100 1005. std::array 与 C 风格数组的对比 特性std::arrayC 风格数组 (T arr[N])大小固定编译期确定固定编译期确定安全性✅ at() 带边界检查❌ 越界访问未定义行为STL 兼容性✅ 支持 std::algorithm❌ 不兼容 STL拷贝✅ 支持赋值深拷贝❌ 数组名是指针不能直接赋值性能✅ 等同于 C 数组✅ 等同于 std::array获取大小✅ .size()❌ 需 sizeof(arr)/sizeof(arr[0]) 6. std::array 在 STL 算法中的使用 #include iostream #include array #include algorithm // 用于 sort()int main() {std::arrayint, 5 arr {30, 10, 50, 20, 40};std::sort(arr.begin(), arr.end()); // 排序for (int x : arr) std::cout x ; // 10 20 30 40 50 }输出 10 20 30 40 50✅ std::array 支持 std::sort()、std::reverse()、std::find() 等 STL 算法。 7. 总结 特性std::arraystd::vectorC 风格数组大小可变❌ 否✅ 是❌ 否边界检查✅ at()✅ at()❌ 否STL 兼容✅ 是✅ 是❌ 否性能✅ 高效⚠️ 可能有额外分配✅ 高效 ✅ 如果数组大小固定推荐使用 std::array。 ✅ 如果数组需要动态扩展使用 std::vector。 ✅ C 风格数组适用于对性能要求极高且手动管理数组的情况。 你对 std::array 还有其他问题吗
http://www.w-s-a.com/news/396842/

相关文章:

  • 房地产怎么做网站推广建立音乐网站
  • 川畅科技联系 网站设计网站开发的教学视频
  • 为什么学网站开发凡科登陆
  • 设计师常备设计网站大全中山精品网站建设信息
  • 杭州建设工程网seo服务是什么
  • 兼职做问卷调查的网站wordpress mysql设置
  • 怎么在百度上能搜到自己的网站山西seo谷歌关键词优化工具
  • 网站搭建免费模板飞鱼crm下载
  • 网站开发竞品分析app制作公司深圳
  • 网站建设ssc源码修复设计班级网站建设
  • 网站重定向凡科做网站不要钱
  • 佛山html5网站建设微信营销软件破解版
  • 网站单页做301南京百度推广
  • 私人做网站要多少钱展芒设计网页
  • 怎样网站制作设计如何在网上推广农产品
  • 做关键词排名卖网站聚名网
  • 吉林省住房城乡建设厅网站首页体育器材网站建设方案
  • 网站建设及维护专业手机金融界网站
  • 常州网站建设工作室建立网站有怎么用途
  • 如何盗取网站推广策划书模板
  • 游戏网站建设计划书网络开发需要学什么
  • 手机网站维护费网站开发包括网站过程
  • 懂做游戏钓鱼网站的网站建设技术的发展
  • 网站被百度收录百度一下你就知道 官网
  • 雅客网站建设做网站用什么做
  • 做宣传海报网站专业网站设计速寻亿企邦
  • 秦皇岛市住房和城乡建设局网站有关网站开发的参考文献
  • 晋城城乡建设局网站深圳外贸业务员工资
  • 招聘网站开发的公司销售运营主要做什么
  • 徐州网站无障碍建设wordpress证书