logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

STL无序关联容器—unorded_set+unorded_map

map 按键排序unordered_map。(可能 2 1 3 或其他)因为没有顺序,无法范围查找。

文章图片
#c++#开发语言
容器适配器+仿函数

仿函数,本质上就是重载了operator()的类 / 结构体,它的对象可以像普通函数一样被调用,因此也叫 “函数对象”。它比普通函数更灵活,可以保存状态、适配 STL 算法和容器的自定义规则。// 1. 普通函数版比较// 2. 仿函数版比较(核心:重载operator())// 实现"大于"比较逻辑仿函数最常见的用途,就是为 STL 容器 / 算法提供自定义的比较规则让setmap从默认升序改成

文章图片
#c++#算法#开发语言
STL关联容器multimap+multiset

本文摘要: multiset和multimap是C++中允许存储重复元素/键的关联容器,底层实现均为红黑树。与set/map的主要区别在于允许重复元素/键。multiset插入操作总是成功且返回迭代器,删除时需注意erase(value)会删除所有重复值,而erase(iterator)仅删除单个元素。查找重复元素推荐使用equal_range()。multimap与map的最大区别是不支持ope

文章图片
#c++#算法#开发语言
lambda表达式讲解

C++11的Lambda表达式是一种匿名函数对象,允许在代码中直接定义临时函数。其核心语法包括捕获列表、参数列表、mutable修饰符、异常规范和返回类型,其中捕获列表和函数体是必需的。捕获列表分为值捕获和引用捕获,通过[=]、[&]等语法控制变量访问方式,需注意引用捕获可能导致悬垂引用。Lambda本质是编译器生成的闭包类,重载了operator()。特性包括自动返回值类型推导(单ret

文章图片
#c++#算法#开发语言
C++基础入门1

本文介绍了C++中的初始化、输入输出操作、const关键字和引用特性。C++支持多种初始化方式(如()和{}初始化),比C更灵活。在输入输出方面,C++使用iostream库(cin/cout)比C的stdio更安全高效。const在C++中创建真正的常量,支持指针常量(const在右侧)和常量指针(const在左侧)。引用作为变量的别名,必须初始化且更安全,常用于函数参数传递。相比指针,引用不存

文章图片
#c++#开发语言
C++基础入门 2

本文主要介绍了C++中的指针与引用区别、缺省函数和函数重载三个核心概念。指针和引用在定义语法、初始化要求、内存特性及可变性等方面存在显著差异:指针存储地址且可修改指向,而引用是变量别名且不可修改绑定。缺省函数允许为参数指定默认值,调用时可省略从右到左的连续参数。函数重载则支持同名函数通过参数个数、类型或顺序的差异进行区分,但需注意返回类型和默认参数的影响。这些特性共同增强了C++的灵活性和代码复用

文章图片
#c++#开发语言
C++仿函数以及STL内置仿函数

本文介绍了C++中的仿函数概念及其应用。仿函数本质是重载operator()的类对象,可像普通函数一样调用。相比函数指针,仿函数具有携带状态、性能优化、类型安全和泛型支持等优势。STL在<functional>中提供了多种内置仿函数,包括算术运算(如plus、minus)、关系运算(如greater、less)、逻辑运算(如logical_and)以及位运算(如bit_and)等。这些

文章图片
#c++#开发语言
C++移动语义和智能指针

本文摘要: C++11引入移动语义和智能指针两大特性,显著提升性能与内存安全性。移动语义通过区分左值/右值,实现资源转移而非拷贝,避免临时对象深拷贝的开销,核心包括移动构造函数、移动赋值运算符及std::move强制转换。智能指针(unique_ptr、shared_ptr、weak_ptr)基于RAII机制自动管理内存,解决原始指针的内存泄漏、悬空指针等问题。unique_ptr独占所有权,支持

文章图片
#c++#java#开发语言
c++类派生2

本文系统阐述了C++继承体系中派生类与基类在构造函数、析构函数、拷贝构造、赋值运算符、静态成员、友元关系和final类等方面的核心规则。重点包括:派生类构造必须优先初始化基类子对象;析构函数执行顺序与构造相反;拷贝构造和赋值运算符需显式调用基类版本;静态成员具有共享性;友元关系不具继承性;final关键字可禁止继承或重写。通过代码示例详细演示了各类场景的正确实现方式及常见错误,为面向对象程序设计中

文章图片
#c++#开发语言
C++异常处理

本文系统介绍了C++异常处理机制。首先对比了C语言错误处理方式的缺陷(易忽略错误码、资源泄露风险等),重点讲解了C++异常处理的三大要素:throw抛出异常、try监控代码块、catch捕获异常。详细分析了异常传播过程中的栈展开机制(自动调用局部对象析构函数),并展示了自定义异常类的最佳实践(继承std::exception)。文章还深入探讨了C++11的noexcept关键字用法及其注意事项,以

文章图片
#java#开发语言#c++
    共 22 条
  • 1
  • 2
  • 3
  • 请选择