学会吊打面试官之list

百度坐标批量采集:Excel 地址列到 WGS84 经纬度 空间智能实验室 Vol.20:百度坐标批量采集:Excel 地址列到 WGS84 经纬度 公安、综治类台账里最常见的一张表,往往只有一列「单位地址」,没有坐标。这篇文章拆解我自建的一个小工具:上传 Excel、选一列地址 阅读详情

小白:大牛,我想请教一下关于C++ STL中的容器,list是什么,它的用法和特点是什么?

大牛:小白,很高兴听到你对容器感兴趣。list是STL中的双向链表容器,它有以下几个特点:

  1. 支持高效的插入和删除操作。由于list是双向链表,因此在任意位置插入或删除元素时只需要修改相邻节点的指针,时间复杂度为O(1)。

  2. 不支持随机访问。由于list不是连续存储的,因此无法通过下标来访问元素,只能通过遍历链表来访问。

  3. 支持高效的拷贝和移动操作。由于list的元素是独立存储的,因此可以通过拷贝或移动指针来高效地实现整个list的拷贝或移动。

下面我们来看一个实际的案例,假设我们需要实现一个简单的学生成绩管理程序,我们可以使用list容器来保存学生的成绩。

#include <iostream>
#include <list>
#include <string>

struct Student {
    std::string name;
    int score;
};

int main() {
    std::list<Student> students;

    students.push_back({"Tom", 80});
    students.push_back({"Alice", 90});
    students.push_back({"Bob", 85});

    for (auto& student : students) {
        std::cout << student.name << " scored " << student.score << std::endl;
    }

    return 0;
}

在上面的代码中,我们定义了一个名为Student的结构体,包含学生的姓名和成绩。我们创建了一个list容器来保存学生的信息,并使用push_back函数向其中添加了三个学生的信息。最后,我们通过for循环遍历整个list并输出每个学生的姓名和成绩。

小白:哇,list好神奇啊,谢谢大牛的讲解和案例。

大牛:我们再进一步结合一个实际的案例来详细解释list容器的使用。假设我们需要编写一个程序,实现字符串的逆序输出。我们可以使用list容器来实现这个功能。

#include <iostream>
#include <list>
#include <string>

int main() {
    std::string str = "hello world";
    std::list<char> charList(str.begin(), str.end());

    charList.reverse();

    for (auto& c : charList) {
        std::cout << c;
    }
    std::cout << std::endl;

    return 0;
}

大牛:在上面的代码中,我们首先定义了一个名为str的字符串,将其转换为一个list容器charList。通过使用容器的构造函数,我们可以将一个序列(在这里是字符串)的元素添加到list容器中。

接下来,我们使用reverse函数将list容器中的元素逆序排列。最后,我们通过遍历charList容器并输出其中的元素,将逆序后的字符串输出到控制台中。

通过这个例子,我们可以看到list容器在实现字符串逆序输出时的便利性。同时,它也展示了list容器的高效性和灵活性。

小白:有什么具体案例解释一下嘛,我感觉还是没有很好理解qvq.

大牛:除了逆序输出字符串外,list容器在实际开发中还有很多应用。比如,我们可以使用list容器来实现一个简单的文本编辑器。

下面是一个简单的示例,它可以通过list容器来实现向一个文本文件中添加、删除、插入文本的功能。

#include <iostream>
#include <fstream>
#include <list>
#include <string>

void read_file(std::list<char>& charList, const std::string& filename) {
    std::ifstream input_file(filename);
    if (!input_file.is_open()) {
        std::cerr << "Failed to open file: " << filename << std::endl;
        return;
    }

    char c;
    while (input_file.get(c)) {
        charList.push_back(c);
    }
}

void write_file(const std::list<char>& charList, const std::string& filename) {
    std::ofstream output_file(filename);
    if (!output_file.is_open()) {
        std::cerr << "Failed to open file: " << filename << std::endl;
        return;
    }

    for (auto& c : charList) {
        output_file.put(c);
    }
}

int main() {
    std::string filename = "test.txt";
    std::list<char> charList;

    read_file(charList, filename);

    charList.push_back('\n');
    charList.push_back('a');
    charList.push_back('b');
    charList.push_back('c');
    charList.push_back('\n');
    charList.insert(charList.begin(), 'x');
    charList.erase(charList.begin() + 5);

    write_file(charList, filename);

    return 0;
}

在上面的代码中,我们定义了一个名为charList的list容器,用来存储文本文件中的字符。我们通过read_file函数从文件中读取文本数据并将其存储到charList容器中。然后,我们使用push_back、insert、erase等list容器的成员函数,向charList容器中添加、删除、插入字符。

最后,我们通过write_file函数将修改后的文本数据写入到文件中。

这个例子中展示了list容器在实现文本编辑器时的便利性。使用list容器,我们可以高效地实现文本的插入、删除和修改。同时,list容器还能够很好地处理大量数据的读写操作,因为它的内部实现是通过双向链表来实现的,所以在插入和删除操作时,它的效率比较高。

小白:原来是这样,那它的底层实现是怎样的呢?

大牛:list容器的底层实现是一个双向链表,每个节点存储了一个元素和指向前一个节点和后一个节点的指针。因此,在插入和删除操作时,list容器比较高效。

具体地说,在插入元素时,list容器会创建一个新节点,并将其指针链接到前一个节点和后一个节点上,同时更新前一个节点和后一个节点的指针,将其指向新节点。这样,插入操作就完成了。

在删除元素时,list容器会找到要删除的节点,更新前一个节点的指针,将其指向下一个节点,同时更新下一个节点的指针,将其指向前一个节点,然后释放要删除的节点。这样,删除操作就完成了。

由于list容器的底层实现是双向链表,因此它的迭代器也是双向迭代器,可以进行前向和后向迭代。在实际应用中,list容器经常用于需要频繁插入、删除元素的场景,比如文本编辑器、图形界面等。

需要注意的是,由于list容器的元素存储在堆上,因此访问元素时需要通过指针进行间接访问,这可能会带来一定的性能开销。同时,由于list容器不支持随机访问,因此无法像数组一样使用下标来访问元素。因此,在使用list容器时,需要根据具体情况选择合适的容器类型。

QMT vs Ptrade:量化交易新手如何根据需求选择券商系统(附实战案例) 本文对比了QMT和Ptrade两大券商量化交易系统的核心差异,帮助量化交易新手根据需求选择合适的平台。QMT适合技术面策略开发,执行效率高;Ptrade则提供全面的财务数据和复杂策略支持。通过实战案例,展示了如何结合两平台优势实现高效量化交易。 阅读详情

相关推荐

MoveIt2项目想换掉KDL求解器?试试这个trac_ik插件(附源码编译避坑指南)

本文详细介绍了如何在MoveIt2项目中用trac_ik插件替代KDL求解器,提升机械臂运动学求解的效率和成功率。内容涵盖环境准备、源码编译避坑、项目集成及性能调优,特别适合需要高精度控制的协作机械臂应用场景。通过实测数据对比,trac_ik在求解时间和奇异点处理上显著优于传统KDL求解器。

weixin_30730053的博客 692

学会吊打面试官之vector

当vector需要扩容时,它会分配一块更大的内存,将原有的元素复制到新内存中,并释放原有的内存。当vector需要扩容时,它会分配一块更大的内存,将原有的元素复制到新内存中,并释放原有的内存。这些操作方法是用迭代器实现的,迭代器是一种指向容器中元素的对象,可以遍历容器中的元素,进行各种操作。由于vector的元素是连续存储的,当需要在中间或开头添加或删除元素时,需要移动其他元素,效率较低。当元素数量超出vector当前容量时,vector会自动扩容,而且扩容后的元素会连续存储在一起,避免了内存碎片的产生。

clayhell的博客 1351

pytorch-cifar100学习资料汇总 - 基于PyTorch的CIFAR-100图像分类实践

pytorch-cifar100是一个基于PyTorch实现CIFAR-100数据集图像分类的开源项目。该项目实现了多种经典的深度学习网络模型,如ResNet、DenseNet、VGG等,为开发者提供了在CIFAR-100数据集上进行图像分类实验的代码范例。pytorch-cifar100项目为我们提供了在CIFAR-100数据集上进行图像分类实验的完整代码实现。无论你是想要学习PyTorch的使用,还是研究不同网络模型在CIFAR-100上的表现,这个项目都是一个很好的起点。

helloaiworld的博客 1123

学会吊打面试官之deque

vector是一段连续的内存空间,当空间不足时需要重新分配内存并拷贝数据,而deque则是由多个内存块组成的,每个内存块都是一段连续的内存空间,当需要扩容时,只需要分配新的内存块,并将其链接到原来的内存块上,不需要拷贝数据,因此在一些场景下,deque的性能比vector更好。大牛:是的,deque是由多个小的数组组成的,称为缓冲区。这样,当在deque的中间插入或删除元素时,只需要重新分配一个新的缓冲区,并把指针连接起来即可,而不需要像vector那样重新分配整个数组,或者像list那样重新连接节点。

clayhell的博客 1237

自动驾驶车辆纵向控制实战:基于CARLA与ROS2的PID算法实现

本文详细介绍了基于CARLA与ROS2的自动驾驶车辆纵向控制实战,重点讲解了PID算法的实现与应用。通过搭建仿真环境、实现定速巡航和自适应巡航功能,帮助开发者掌握自动驾驶核心技术。文章还分享了系统集成、仿真验证及常见问题的调试技巧,为自动驾驶开发提供实用指导。

weixin_33728708的博客 354

【目标追踪】python背景模型减除法原理及其实现

python基于背景模型差法的视频目标追踪帧差法的问题:背景模型差法目标追踪原理1. 基本思路:2. 图例讲解:3. 存在的问题&如何解决:4. 最终效果预览第一步——调用摄像头:1. 使用opencv打开视频or摄像头:2. 读取逐帧图片:第二步——处理图片:1. 转换成灰度图:3. 累加权重重构背景:3. 计算像素差:3. 使用中值滤波和膨胀腐蚀去噪:3.1 中值滤波:3.2 图像腐蚀...

梁瑛平的博客 1948

学会吊打面试官之容器终篇priority_queue

在插入元素时,会将元素放在底层容器的末尾,然后进行上浮操作,将元素与其父节点比较,如果比父节点大,则将其与父节点交换位置,直到满足堆的条件为止。在弹出元素时,会将堆顶元素与底层容器的末尾元素交换位置,然后进行下沉操作,将元素与其子节点比较,如果比子节点小,则将其与子节点交换位置,直到满足堆的条件为止。它们的插入、查找和删除操作的时间复杂度都是 O(1),但是在遍历容器时,元素的顺序是不确定的。

clayhell的博客 1396

Lumerical 教程目录,说明及个人感悟(共计138篇,持续更新中)

Lumerical---教程说明及个人感悟

u011699626的博客 1万+

Redis 核心篇:唯快不破的秘密

学习一个技术,通常只接触了零散的技术点,没有在脑海里建立一个完整的知识框架和架构体系,没有系统观。这样会很吃力,而且会出现一看好像自己会,过后就忘记,一脸懵逼。跟着「码哥字节」一起吃透 Redis,深层次的掌握 Redis 核心原理以及实战技巧。一起搭建一套完整的知识框架,学会全局观去整理整个知识体系。系统观其实是至关重要的,从某种程度上说,在解决问题时,拥有了系统观,就意味着你能有依据、有章法地定位和解决问题。全景图可以围绕两个维度展开,分别是:应用维度:缓存使用、集群运用、数据结构的巧妙使用系统维度:可

dz45693的专栏 1201

【RT-DETR有效改进】全新的SOATA轻量化下采样操作ADown(轻量又涨点,附手撕结构图)

本文给大家带来的改进机制是利用2024/02/21号最新发布的YOLOv9其中提出的ADown模块来改进我们的Conv模块,其中YOLOv9针对于这个模块并没有介绍,只是在其项目文件中用到了,我将其整理出来用于我们的YOLOv8的项目,经过实验我发现该卷积模块(作为下采样模块)首先可以大幅度降低参数值,其次其精度上也有很高的提升,同时本文的内容目前网络上并无其它人总结(也是最新发布的,可以说BUff是集满了)大家可以尝试以下在自己数据集上的效果。

Snu77的博客 4769

即插即用系列(代码实践) | CVPR 2025 FDConv:频域动态卷积,打破密集预测任务的参数效率瓶颈

本文提取自 CVPR 2025 的最新底层算子革新论文《Frequency Dynamic Convolution for Dense Image Prediction》。近年来,动态卷积(Dynamic Convolution)通过融合多个并行卷积核极大地提升了模型性能,但研究表明:这些并行卷积核在频域上的响应高度相似,导致了极其严重的参数浪费,且缺乏对不同频率特征的自适应能力。本文复现了该网络的核心架构——FDConv(频率动态卷积)。该方案创造性地在傅里叶域(Fourier Domain)中学习固定参

分享顶会顶刊论文即插即用模块 111

Python零基础到就业:一个月掌握核心技能与实战项目

Python作为一门简洁高效的编程语言,其核心价值在于通过清晰的语法和丰富的库生态,将复杂问题模块化解决。从基础语法、函数、面向对象编程到文件操作,理解这些概念是构建自动化脚本、数据分析工具和Web应用的基础。在工程实践中,Python凭借pandas、requests、flask等库,在数据分析、网络爬虫和Web开发等场景中展现出强大生产力。对于初学者而言,一套结构化的学习路径至关重要,它能将零散知识点串联,并通过实战项目驱动,快速构建解决实际问题的能力。本文聚焦的Python零基础教程,正是提供了这样一

weixin_30314813的博客 375

DeerFlow 系列教程 第十一篇 | Sandbox 沙箱与 Memory 记忆——安全执行与持久认知

用户请求│▼Lead Agent├── 系统提示词组装│ ├── <memory> 段 ← Memory 系统注入用户记忆│ ├── <skill_system> 段│ └── <subagent_system> 段│├── 工具调用│ ├── read_file ├── Sandbox 系统提供隔离执行│ ├── write_file├── 路径虚拟化 + 安全验证│└── 对话结束│▼│├── 过滤消息(去除工具调用中间步骤)├── 检测纠正/强化信号。

weixin_43674738的博客 161

2023阿里Java中高级面试1000题精解:八股文背后的原理与刷题方法论

Java面试中的'八股文'并非死记硬背的题海,而是对工程师底层原理掌握程度的系统性考察。从集合框架到JVM调优,从并发编程到分布式中间件,每一类考点都对应着真实业务场景中的关键决策。理解HashMap的扩容机制、MySQL的B+树索引、Redis的缓存策略,不仅能帮助候选人在大厂面试中从容应对追问,更能提升线上系统排查与性能优化的实战能力。基于2023年阿里中高级Java面试1000题梳理的备考指南,覆盖七大知识模块的备考路径与三阶段刷题方法,助力开发者将零散知识点织成完整能力地图。

weixin_33842304的博客 323

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

百度肖阳:“提示词工程“是AI时代的必修课

6月7日,高考首日,AI挑战高考语文的新闻刷屏。在一场关于高考直播的中,百度搜索正在内测的“AI伙伴”现场挑战高考语文考试

2601_96798011的博客 187

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

百度开源文心5.5 Flash Base:280B MoE 只激活 14B,4 步部署 + 3 个坑,微调还是等指令版

百度开源文心 5.5 Flash 基座权重:280B MoE 每 token 激活 14B,1M 上下文,同尺寸开源 Base 30 项基准多数领先。4 步部署(vLLM/SGLang completions 链路)+ 3 个高频坑 + 动手前 6 点核对清单,并给出微调 Base 还是等指令版的判断线。

weixin_50937681的博客 246

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

DeepSeek Harness 创造模式完整教程:5 步创建插件、验证生效与保存专属模式

发布日期:2026-11-03 | 数据截至 2026-11-03,来源为各平台官网、中国信通院《大模型词元服务性能监测报告(2026年)》及公开研究资料2026年国内企业级大模型 API 服务商已分化为云厂商自营(阿里百炼、火山方舟、百度千帆、腾讯云 TokenHub)和独立聚合平台(七牛云 Token Plan、硅基流动)两大阵营,模型厂商直连(智谱 GLM、讯飞星火)则作为垂直场景补充。

aidoudoulong的博客 523

百度泛域名批量cookies池绑定推送软件:一台服务器挂着跑完整循环

晚上十点合上笔记本,凌晨两点软件还在跑。这是远程服务器上一块普通的 Windows 桌面,任务栏里只有远程连接、一个浏览器和一个推送工具。泛域名批量绑定推送这件事,子域只有几十个时手工还能应付。子域上千、账号上百之后,真正限制速度的是人得守在电脑前面这个前提。百度泛域名批量cookies池绑定推送软件解决的就是这个前提:把一台联网的服务器变成工作台,账号池灌进去,任务挂着跑,第二天早上回来看日志。

qq_37517013的博客 299

不用 NVLink,Muon 训练步时缩短 63.7%:百度百舸具身智能场景的优化实践

不过,训练规模扩大后,Muon 本身的开销会变得突出。2025 年,Moonlight 用 Muon 训练了 160 亿参数的 MoE 模型,实验表明,在计算最优配置下,Muon 只需约 52% 的训练计算量即可达到 AdamW 的同等表现。MuonX 用 Gram NS 降低 NS 迭代的计算量,用 DMuon 减少多卡训练中获取完整矩阵的开销,在实例内未配置 NVLink 的百舸 hpas.lgn7ib 实例上,将 LingBot-VLA 2.0 的 FSDP 训练步时缩短六成以上。

2301_82040283的博客 268

不同项目怎么选地图 API?高德、百度、腾讯、天地图、维智对比

高德、百度、腾讯、天地图、维智,并不是同一类型平台的简单横向竞争。高德、百度、腾讯更偏完整地图平台;天地图更偏标准地图和行政边界;维智更偏基础位置服务能力,同时具备地图底座、水域预警、私有化部署,以及维网智芯带来的终端与行业场景纵深。所以地图 API 选型的关键,不是判断谁绝对更好,而是看项目真正需要哪一层能力。

weixin_36931768的博客 371

WordPress发布/编辑文章自动推送给百度和必应的方法

本文介绍如何通过WordPress主题的functions.php文件,实现文章发布或编辑时自动推送URL至百度和必应。只需添加代码,配置网站地址、必应与百度API密钥,并启用后,系统将自动提交链接,成功则标记为“1”,便于后台查看推送状态,有效提升收录效率。

boke112的博客 205

文心 5.5 Flash Base:百度把“效率“写进了预训练

百度于2026年11月5日开源文心5.5FlashBase(ERNIE-5.5-Flash-Base),一款280B总参数、每token仅激活14B的预训练基座模型,支持最长1M上下文推理。其核心创新在于通过37层压缩注意力(HCA)与6层精读注意力(MLA-DSA)结合,实现长文本高效处理;采用多路由潜空间MoE提升专家利用率;引入ECHO机制强化主干规划能力。在代码、推理、长上下文等任务中达同尺寸SOTA,但需8卡H100起步,适用于领域微调、SFT与Agent训练,不支持直接对话。

【可全包】本人程序员,不需要做任何吹嘘,只是实在写点程序,写点文档,熟悉各类主流框架,SSM,SpringBoot,Flask,Djiango,Mysql,Sqlite,VUE,Uniapp等,各类程序设计专家,优质作者 391

高德、百度、腾讯、维智地图服务深度对比:从参数到选型的完整指南

相比之下,维智虽然以企业合作为主,但对中小团队的商务灵活度更高,POI 搜索、室内外定位、IP 定位、正逆地理编码、距离计算、行政区域、水域、天气等接口矩阵齐全,可以随着业务成长平滑扩展。它并不是只能补室内短板的“增强型服务”,而是已经具备完整位置服务接口矩阵,并在此基础上叠加室内外一体化、数据主权、定制化能力,以及 Android、iOS、小程序、Flutter、uni-app 多端 SDK 与 UNI 定位插件,构成的是完整的企业级位置服务底座。高德、百度、腾讯的室内地图更多是"锦上添花",覆盖有限;

weixin_36931768的博客 314

百度百舸多模态数据湖的设计与实践

大模型的迭代正在把数据推到舞台中央。当训练语料从整齐的结构化行表,变成图像、视频、音频、文本与 Embedding 混杂的资产,传统数据湖在存储格式、访问模式与计算引擎上都面临新的挑战。百舸多模态数据湖要回答的是:如何让多模态数据像结构化数据一样被高效地存、算、管。先看一条样本本身。过去做推荐或风控,一条样本通常就是这几列标量:id / user_id / item_id /label / ts,整行不过几十字节,一个 Parquet 文件装得下千万条。

2301_82040283的博客 338

2026年百度AI与通义千问GEO服务商选择指南:双平台适配与选型指标拆解

2026年的品牌曝光竞争,正从“搜索结果第一页”转向“AI回答的第一句话”。百度AI把传统搜索的链接列表压缩成一段带引用的答案,通义千问则把同样的能力带进办公、电商与生活服务场景。用户不再逐条比对链接,而是直接采信AI给出的结论,这意味着品牌要么成为答案的一部分,要么在决策链路上彻底缺席。需求侧的变化同样明显。过去采购方问的是“能不能发稿、能发多少篇”,现在问的是“能不能进AI的引用来源、能不能被点名推荐、算法更新后还能不能守得住”。

科技,技术,行业类博主 88

eCos flash模拟EEPROM实现NV系统

eCos flash模拟EEPROM实现NV系统

汽车以太网和SOA 9291
上一篇: 学会吊打面试官之vector
下一篇: 学会吊打面试官之deque
五百五。
博客等级 码龄7年 249粉丝 177原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五百五。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值