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

国内做外贸网站的有哪些电商网站开发公司

国内做外贸网站的有哪些,电商网站开发公司,一个人在线观看免费高清视频动漫,河南华盛建设集团网站目录 1. list 的介绍及使用 1.1 list 的介绍 知识点#xff1a; 小李的理解#xff1a; 1.2 list 的使用 1.2.1 list 的构造 知识点#xff1a; 小李的理解#xff1a; 代码示例#xff1a; 1.2.2 list 迭代器的使用 知识点#xff1a; 小李的理解#xff1… 目录 1. list 的介绍及使用 1.1 list 的介绍 知识点 小李的理解 1.2 list 的使用 1.2.1 list 的构造 知识点 小李的理解 代码示例 1.2.2 list 迭代器的使用 知识点 小李的理解 代码示例 1.2.3 list 的容量 知识点 小李的理解 代码示例 1.2.4 list 的元素访问 知识点 小李的理解 代码示例 1.2.5 list 的修改操作 知识点 小李的理解 代码示例 1.2.6 list 迭代器失效 知识点 小李的理解 代码示例 2. list 的模拟实现 知识点 小李的理解 代码示例 3. list 与 vector 的对比 知识点 小李的理解 总结 专栏C学习笔记  上一卷【C 】-vector新时代动态数组的革新与未来 C 中的 list 是一个强大的容器特别适用于需要频繁插入和删除元素的场景。本文将详细介绍 list 容器包括其介绍、使用方法、实现原理以及与 vector 容器的对比。 1. list 的介绍及使用 1.1 list 的介绍 知识点 list 是一种序列式容器底层实现为双向链表。双向链表中的每个元素存储在独立的节点中节点通过指针互相连接可以在常数时间内在任意位置进行插入和删除操作。与 forward_list 的单链表不同list 支持双向迭代。与其他序列式容器如 array、vector、deque相比list 在插入和删除操作方面表现更优但不支持随机访问。 小李的理解 list 就像一条双向街道上的车队每辆车节点都有前后两个链接指向前后两辆车。你可以轻松地在任何地方插入或删除一辆车而不需要移动其他车。但是如果你想找到某辆车就需要从头或尾开始一辆辆查找比较费时。 1.2 list 的使用 1.2.1 list 的构造 知识点 list 提供多种构造方法包括创建空的 list创建包含多个相同元素的 list使用区间构造 list 以及拷贝构造等。 小李的理解 构造 list 就像创建不同类型的车队你可以创建一个空车队或者一个全是同样车的车队还可以用现有的车队来创建新的车队。 代码示例 #include list #include iostreamint main() {// 创建一个空的 liststd::listint empty_list;// 创建一个包含 5 个值为 10 的元素的 liststd::listint filled_list(5, 10);// 使用区间构造 listint arr[] {1, 2, 3, 4, 5};std::listint range_list(arr, arr 5);// 打印 filled_list 的元素for(int n : filled_list) {std::cout n ;}std::cout std::endl;return 0; }这个程序首先创建一个空的 list然后创建一个包含 5 个值为 10 的 list接着用数组中的元素构造一个 list。最后打印 filled_list 的元素显示 5 个 10。 1.2.2 list 迭代器的使用 知识点 list 的迭代器类似于指针指向 list 中的节点。你可以使用迭代器遍历 list访问或修改元素。 小李的理解 迭代器就像你走在车队中的一个人你可以走到每辆车旁边查看里面的东西或者往回走查看后面的车。 代码示例 #include list #include iostreamint main() {std::listint my_list {1, 2, 3, 4, 5};// 正向迭代for (auto it my_list.begin(); it ! my_list.end(); it) {std::cout *it ;}std::cout std::endl;// 反向迭代for (auto rit my_list.rbegin(); rit ! my_list.rend(); rit) {std::cout *rit ;}std::cout std::endl;return 0; }这个程序创建一个包含 5 个整数的 list。正向迭代器遍历 list从头到尾打印元素反向迭代器遍历 list从尾到头打印元素。 1.2.3 list 的容量 知识点 你可以使用 empty() 函数检查 list 是否为空使用 size() 函数获取 list 中的元素个数。 小李的理解 这就像你检查车队中是否有车以及数一数车队中有多少辆车。 代码示例 #include list #include iostreamint main() {std::listint my_list {1, 2, 3, 4, 5};// 检查是否为空if (my_list.empty()) {std::cout List is empty std::endl;} else {std::cout List is not empty std::endl;}// 获取大小std::cout List size: my_list.size() std::endl;return 0; }程序首先检查 list 是否为空显然 my_list 不为空然后打印 list 的大小显示有 5 个元素。 1.2.4 list 的元素访问 知识点 你可以使用 front() 函数访问 list 的第一个元素使用 back() 函数访问 list 的最后一个元素。 小李的理解 这就像你想看看车队的第一辆车和最后一辆车里装了什么东西。 代码示例 #include list #include iostreamint main() {std::listint my_list {1, 2, 3, 4, 5};// 访问第一个和最后一个元素std::cout First element: my_list.front() std::endl;std::cout Last element: my_list.back() std::endl;return 0; }程序分别打印 list 的第一个和最后一个元素显示 1 和 5。 1.2.5 list 的修改操作 知识点 list 提供丰富的修改操作包括在头部和尾部插入和删除元素插入和删除特定位置的元素交换两个 list 的内容以及清空 list。 小李的理解 这就像你可以在车队的任何位置加车或减车甚至可以交换两队车里的车或者把整个车队清空。 代码示例 #include list #include iostreamint main() {std::listint my_list {1, 2, 3, 4, 5};// 插入和删除操作my_list.push_front(0); // 在前面插入 0my_list.push_back(6); // 在后面插入 6my_list.pop_front(); // 删除第一个元素my_list.pop_back(); // 删除最后一个元素// 插入和删除特定位置的元素auto it my_list.begin();it; // 指向第二个元素my_list.insert(it, 100); // 在第二个位置插入 100it my_list.begin();it;my_list.erase(it); // 删除第二个位置的元素// 交换和清空 liststd::listint another_list {10, 20, 30};my_list.swap(another_list);my_list.clear();return 0; }以下是程序在各步之后的状态 my_list 初始为 {1, 2, 3, 4, 5}插入 0 和 6 后为 {0, 1, 2, 3, 4, 5, 6}删除第一个和最后一个元素后为 {1, 2, 3, 4, 5}在第二个位置插入 100 后为 {1, 100, 2, 3, 4, 5}删除第二个位置的元素后为 {1, 2, 3, 4, 5}与 another_list 交换后 my_list 为 {10, 20, 30}清空后 my_list 为空 1.2.6 list 迭代器失效 知识点 在 list 中插入操作不会导致迭代器失效删除操作会使指向被删除节点的迭代器失效。 小李的理解 就像你从车队中移走一辆车时那个位置的指示牌迭代器也被移走了但其他位置的指示牌不受影响。 代码示例 #include list #include iostreamint main() {std::listint my_list {1, 2, 3, 4, 5};auto it my_list.begin();while (it ! my_list.end()) {it my_list.erase(it); // 删除元素后更新迭代器}return 0; }这个程序将删除 list 中的所有元素最后 my_list 为空。 每次删除一个元素后迭代器指向下一个元素直到 list 清空。 2. list 的模拟实现 知识点 实现一个简化版本的 list需要理解其底层结构和接口的含义。以下是一个简化的 list 实现示例 小李的理解 模拟实现 list 就像你自己动手造一辆汽车你需要理解汽车的每个部件和它们如何协同工作。 代码示例 #include iostreamtemplatetypename T class Node { public:T data;Node* prev;Node* next;Node(T val) : data(val), prev(nullptr), next(nullptr) {} };templatetypename T class List { private:NodeT* head;NodeT* tail;public:List() : head(nullptr), tail(nullptr) {}void push_back(T val) {NodeT* newNode new NodeT(val);if (!tail) {head tail newNode;} else {tail-next newNode;newNode-prev tail;tail newNode;}}void print() {NodeT* temp head;while (temp) {std::cout temp-data ;temp temp-next;}std::cout std::endl;}~List() {NodeT* temp;while (head) {temp head;head head-next;delete temp;}} };int main() {Listint my_list;my_list.push_back(1);my_list.push_back(2);my_list.push_back(3);my_list.print();return 0; }这个程序手动实现了一个简单的 list并添加了 3 个元素。最终打印出 list 中的所有元素。 3. list 与 vector 的对比 知识点 底层结构 vector动态顺序表连续内存空间。list双向链表不连续。 随机访问 vector支持效率为 O(1)。list不支持效率为 O(N)。 插入和删除 vector效率低时间复杂度为 O(N)。list效率高时间复杂度为 O(1)。 空间利用率 vector高连续空间缓存利用率高。list低节点动态分配容易造成内存碎片。 迭代器 vector原生指针。list封装的节点指针。 迭代器失效 vector插入时可能失效删除时当前迭代器失效。list插入不会失效删除时当前迭代器失效。 使用场景 vector高效存储随机访问。list频繁插入和删除操作。 小李的理解 vector 就像一块连续的停车场每辆车元素都紧挨着如果你要在中间插入或删除一辆车就需要挪动很多车。而 list 就像一列火车每节车厢元素独立可以随意插入或移除车厢但要找到某个特定车厢就得一节一节地找。 总结 C 中的 list 容器是一个基于双向链表的序列式容器适用于需要频繁插入和删除操作的场景但不支持随机访问。list 提供了多种构造方法和丰富的操作接口包括插入、删除、访问等。与 vector 相比list 在插入和删除操作上更高效但在随机访问和空间利用率上较差。
http://www.dnsts.com.cn/news/4266.html

相关文章:

  • 太原企业网站建设dede替换网站模板
  • 做pc端网站必知wordpress重装之后
  • 成都网站建设科东营网站建设预算价格
  • 做网站前如何免费建设一个网站
  • 嘉兴模板开发建站wordpress 文章找不到
  • 途牛网站建设策划书人才网招聘官方网
  • 网站建设高端设计教育培训机构有哪些
  • 携程网站官网wordpress图片网盘插件腾讯
  • 开发手机网站多少钱内存优化大师
  • led行业网站源码做深度的互联网站
  • 景德镇建设局网站微网站设计方案
  • 各省住房和城乡建设厅网站电商网站开发fd
  • 黄石网站制作公司常州网上教科院
  • 万网网站到期后续费一年多少钱印刷设计公司起名
  • 南京外贸网站建设案例网站后台密码错误
  • 什么创网站特效比漂亮的网站
  • 手机上有趣的网站建一个网站需要多长时间
  • 做网站要学会那些网站做弹窗
  • 企业网站建设东莞生活中好的设计产品
  • html5 jsp做网站可以么济南中风险地区
  • 昆明定制网站建设全网客源app
  • 有没有专做自驾游的网站wordpress自定义附近上传路径
  • 网站开发外包项目网站开发公司账务处理
  • 一千元做网站惠州做网站小程序
  • 搭建网站详细步骤wordpress推特登陆
  • 个人型网站开站费用给女朋友做的网站内容
  • 湘潭做网站价格 d磐石网络二级网站建设思路
  • 河南建站网站网站建设的好处有什么用
  • 深圳做网站哪家公司好做网站的公司深
  • 长沙市网站设计公司做英文网站 赚钱