2026/4/15 20:38:25
网站建设
项目流程
小型企业网站建设,网站域名不备案吗,河南郑州暴雨,如何在网络上推广产品先搞懂核心概念#xff1a;STL容器是什么#xff1f;STL#xff08;Standard Template Library#xff0c;标准模板库#xff09;是C内置的“工具库”#xff0c;而STL容器就是这个库里帮你“装数据”的通用容器/集合——可以把它理解成不同类型的“盒子”#xff0c;每…先搞懂核心概念STL容器是什么STLStandard Template Library标准模板库是C内置的“工具库”而STL容器就是这个库里帮你“装数据”的通用容器/集合——可以把它理解成不同类型的“盒子”每个盒子有固定的“摆放数据”的规则帮你快速管理一组数据比如列表、键值对、队列等不用自己从零写数组、链表这些数据结构。简单说你想存一组整数、一组字符串不用手动写数组扩容查找逻辑直接用STL容器它已经帮你封装好了所有常用操作添加、删除、查找、排序等。新手必学的核心STL容器按使用频率排序我用“通俗比喻用途简单代码”的方式讲解新手先掌握这5个就够了容器名称通俗比喻核心用途关键特点std::vector可自动扩容的数组存储有序、可随机访问的列表尾部增删快中间增删慢std::string字符容器字符串存储文本专门处理字符串比char数组好用std::map字典/通讯录键值对通过“键”快速找“值”比如ID查姓名按键自动排序查找效率高std::unordered_map无序字典更快的键值对查找不排序查找速度比map更快std::list双向链表频繁在任意位置增删数据增删快随机访问慢新手友好的代码示例1. std::vector最常用#include iostream // 必须包含对应容器的头文件 #include vector int main() { // 创建一个存储整数的vector空盒子 std::vectorint nums; // 往盒子里加数据尾部添加 nums.push_back(10); nums.push_back(20); nums.push_back(30); // 访问数据像数组一样随机访问 std::cout 第一个元素 nums[0] std::endl; // 输出10 std::cout 第二个元素 nums.at(1) std::endl; // 输出20at更安全会检查越界 // 遍历所有数据 for (int num : nums) { std::cout num ; // 输出10 20 30 } // 获取元素个数 std::cout \n元素总数 nums.size() std::endl; // 输出3 return 0; }2. std::string字符串容器#include iostream #include string int main() { std::string str Hello; // 拼接字符串 str STL; std::cout str std::endl; // 输出Hello STL // 获取长度 std::cout 长度 str.length() std::endl; // 输出8 // 查找子串 if (str.find(STL) ! std::string::npos) { std::cout 找到子串STL std::endl; } return 0; }3. std::map键值对容器#include iostream #include map #include string int main() { // 创建键是int学号值是string姓名 std::mapint, std::string studentMap; // 添加键值对 studentMap[101] 张三; studentMap[102] 李四; studentMap[103] 王五; // 通过键找值 std::cout 102号学生 studentMap[102] std::endl; // 输出李四 // 遍历所有键值对 for (auto pair : studentMap) { std::cout 学号 pair.first 姓名 pair.second std::endl; } return 0; }STL容器和Qt容器的关联提前铺垫Qt为了适配自身框架也提供了一套容器和STL容器一一对应新手不用怕语法几乎一致STL容器Qt容器核心区别std::vectorQVectorQt容器支持信号槽、跨线程std::stringQStringQString更适配Qt的中文、UIstd::mapQMapQMap是Qt原生兼容Qt APIstd::unordered_mapQHashQHash查找更快比如Qt中用QVector的写法#include QVector #include QDebug int main() { QVectorint nums; nums 10 20 30; // Qt特有的添加方式也可以用push_back qDebug() nums[0]; // 输出10 return 0; }总结STL容器是C内置的“数据盒子”帮你快速管理一组数据不用自己写底层逻辑新手优先掌握std::vector列表、std::string字符串、std::map键值对这3个覆盖80%的使用场景Qt容器和STL容器用法几乎一致学会STL容器上手Qt容器会非常快核心记住用容器前要包含对应头文件容器的操作添加、遍历、查找是通用逻辑。