08 2024 档案
摘要:1. std::array std::array 是 C++11 引入的一个封装了原生数组的容器,它结合了 C++ 标准库容器的优点和 C 风格数组的效率。 #include <array> #include <iostream> int main() { std::array<int, 5> ar
阅读全文
摘要:C++11 中,引入了委托构造函数(delegating constructors)的概念。 委托构造函数允许一个构造函数调用同一个类中的另一个构造函数,以减少代码重复。 委托构造函数的语法: class MyClass { public: MyClass(int x) : value(x) { /
阅读全文
摘要:传统步骤请参照: https://cloud.tencent.com/developer/article/2195968 使用VirtualKD工具迅速建立双机调试环境: 进入VMware虚拟机(版本越新越好,16支持安装Windows10,17及以上支持安装Windows11) 安装Windows
阅读全文
摘要:std::mutex 和 std::lock_guard 是 C++ 标准库中用于多线程同步的工具,主要用于防止多个线程同时访问共享资源,导致数据竞争问题。 std::mutex 是一个用于互斥锁的类,提供了锁定(lock)和解锁(unlock)的功能。 使用方法: #include <iostre
阅读全文
摘要:算法题:输入一个不存在重复字符的字符串,打印出字符串中字符的全部排列组合。 代码实现: #include <iostream> #include <string> #include <vector> #include <algorithm> // std::swap void permute(std
阅读全文
摘要:迭代器是 C++ 标准模板库 (STL) 中用于遍历容器元素的对象或概念。 它们提供了一种通用的方式来访问容器中的元素,而不需要了解容器的底层实现。 迭代器在设计上类似于指针,但功能更为强大和灵活。 1. 迭代器是什么? 迭代器 是一个抽象概念,它为容器(如 vector、list 等)提供了一种统
阅读全文
摘要:std::binary_search 是 C++ 标准模板库 (STL) 中的一个算法,用于在有序范围内查找某个值是否存在。它基于二分查找算法,时间复杂度为 O(log n)。 std::binary_search 的基本用法: bool binary_search(ForwardIterator
阅读全文
摘要:std::transform 是一个常用的 STL 算法,用于对序列中的每个元素进行操作,并将结果存储在另一个序列中。 lambda 表达式是一种匿名函数,可以在需要传递函数作为参数的场景中使用,比如在 std::transform 中。 语法: // 一元操作 std::transform(Inp
阅读全文
摘要:仿函数的基本定义 仿函数(Functor),也称为函数对象(Function Object),是一个行为像函数的对象。实现仿函数的方法是重载类中的 operator() 操作符,使得对象能够像调用普通函数一样使用。仿函数的主要优势是它们可以拥有状态,并且可以被用于 STL 算法和容器中。 简单例子:
阅读全文
摘要:常见关联容器的迭代器失效规则 std::map 和 std::set: 插入元素: 插入新元素不会使任何已有的迭代器失效。你可以在插入新元素后继续使用所有现有的迭代器。 删除元素: 删除某个元素会导致指向该元素的迭代器失效。除此之外,所有指向其他元素的迭代器仍然有效。 如果在遍历过程中删除元素,应该
阅读全文
摘要:使用 :: 表示 iterator 是 std::map<std::string, double> 类的成员类型。 点击查看代码 #include <iostream> #include <map> int main() { // 创建一个 map,其中键是字符串,值是浮点数 std::map<st
阅读全文
摘要:范围基于for循环是C++11中引入的,简化了遍历数组或容器的代码 点击查看代码 #include <iostream> #include <vector> int main() { std::vector<int> numbers = {1, 2, 3, 4, 5}; // 使用范围基于 for
阅读全文
摘要:点击查看代码 #include <iostream> class Singleton { private: // 私有化构造函数,防止外部实例化 Singleton() { std::cout << "Singleton Instance Created!" << std::endl; } // 删
阅读全文