随笔分类 - C++
摘要:目录1.std::pair模板2. std::pair的一些重要特性和使用方式: 1.std::pair模板 在C++中,std::pair是一个标准库模板,用于将两个不同类型的值组合成一个单元,即一对(pair)。std::pair定义在头文件 <utility> 中。这个模板是为了提供一种简单的
阅读全文
摘要:C++ 标准模板库(Standard Template Library,STL)是 C++ 标准库的一部分,提供了一组通用的模板类和函数,包括数据结构和算法,以便开发者能够更容易地实现各种功能。STL 的设计目标是提供高性能、灵活和通用的工具,使得开发者能够专注于问题的解决,而不必为数据结构和算法的
阅读全文
摘要:在C++中,深拷贝(deep copy)和浅拷贝(shallow copy)是涉及对象复制的两个概念,特别是当涉及到类或结构体时。下面我将解释这两个概念: 1. 浅拷贝(Shallow Copy): 浅拷贝是指将一个对象的内容复制到另一个对象,但如果对象中包含指针,则只会复制指针的值,而不是指针所指
阅读全文
摘要:在 C++ 中,虚函数和纯虚函数都与面向对象编程中的多态性相关,但它们有一些关键的区别。 虚函数(Virtual Function): 定义:虚函数是在基类中声明并在派生类中定义的函数,使用 virtual 关键字进行声明。在基类中可以提供一个默认实现,但在派生类中可以选择覆盖(override)它
阅读全文
摘要:在 C++ 中,this 指针是一个特殊的指针,它指向当前对象的实例。 在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。 this 是一个隐藏的指针,可以在类的成员函数中使用,它可以用来指向调用对象。 当一个对象的成员函数被调用时,编译器会隐式地传递该对象的地址作为 this 指
阅读全文
摘要:cmake-build-debug 和 cmake-build-release 是两个默认的构建目录名称,通常在使用 CMake 构建项目时生成。以下是它们的主要作用和区别: 1. cmake-build-debug: 这是一个用于调试构建的默认构建目录名称。在这个目录下,CMake 会生成包含调试
阅读全文
摘要:在 C++ 中,reset() 可能指的是不同的概念,具体取决于上下文。以下是三个常见的用法: 1. std::shared_ptr::reset(): 在 C++ 中,std::shared_ptr 是用于管理共享所有权的智能指针,reset() 是 std::shared_ptr 提供的一个成员
阅读全文
摘要:在 C++ 中,resize() 是一种用于调整容器大小的成员函数,它通常用于 std::vector、std::string 等标准库容器。这个函数允许你改变容器中元素的数量,可以增加或减少容器的大小。 对于 std::vector: #include <vector> #include <ios
阅读全文
摘要:在 C++ 中,clear() 是用于清除流的状态和控制信息的成员函数,通常用于输入流(例如 std::cin)和输出流(例如 std::cout)。 对于输入流: #include <iostream> int main() { int num; std::cin >> num; // 检查输入流
阅读全文
摘要:在 C++ 中,strlen 是一个用于计算字符串长度的函数,其原型通常定义在 <cstring> 头文件中。strlen 的一般形式如下: size_t strlen(const char* str); str:要计算长度的以 null 结尾的字符串的指针。 strlen 返回字符串的长度,不包括
阅读全文
摘要:在 C++ 中,push_back 是用于在容器的末尾添加一个元素的成员函数。这个函数通常用于向动态数组(比如 std::vector)或类似的容器中添加新的元素。 语法: void push_back(const T& value); value:要添加到容器末尾的元素。 示例: #include
阅读全文
摘要:在 C++ 中,c_str() 是 std::string 类的成员函数,用于返回一个指向以 null 结尾的字符数组(C 风格字符串)的指针。这个函数主要用于将 C++ 标准字符串转换为 C 风格字符串,以便与接受 C 风格字符串参数的函数进行交互。 函数签名: const char* c_str
阅读全文
摘要:size_t 是 C++ 中的一种数据类型,通常用于表示对象的大小或元素的数量。它是一种无符号整数类型,具体的大小依赖于编译器和系统,但通常被设计为能够表示对象的最大可能大小。 特点和用途: 无符号整数类型:size_t 是一种无符号整数类型,因此它只能表示非负的整数值。 与 sizeof 运算符一
阅读全文
摘要:std::string::npos 是 std::string 类中的一个静态常量,通常用于表示字符串操作中的特殊值,表示在字符串中未找到匹配的位置。npos 是 size_t 类型的常量,其值在不同平台上可能有所不同,但通常是一个非常大的正整数。 在 std::string 的成员函数中,npos
阅读全文
摘要:在 C++ 中,find() 函数是字符串类(std::string)的成员函数,用于在字符串中查找特定的子字符串或字符。这函数有两个主要版本:一个是用于查找字符的版本,另一个用于查找子字符串的版本。 查找字符版本: size_t find(const char& ch, size_t pos =
阅读全文
摘要:#ifndef, #define, #endif 和 #pragma once 都是 C++ 中用于预处理的指令,它们的作用是为了防止头文件被多次包含,避免重复定义和编译错误。 #ifndef, #define, #endif 这是传统的头文件防卫式声明的方式,用于防止头文件被重复包含。 #ifnd
阅读全文
摘要:在C++中,通常将程序的代码分为头文件(Header Files)和源文件(Source Files)。这两者在功能和用途上有明显的区别: 头文件(Header Files): 文件扩展名:通常以 .h 或 .hpp 结尾。 包含声明:包含了类、函数、变量的声明,但不包含其实现。 用途:主要用于提供
阅读全文
摘要:std::shared_ptr 是 C++ 标准库提供的智能指针类型之一,用于管理动态分配的资源。reset 是 std::shared_ptr 类的成员函数之一,用于重新分配或重置 std::shared_ptr 所拥有的指针。 以下是 reset 成员函数的基本解释: 函数签名: templat
阅读全文
摘要:using namespace std; 是 C++ 中的一条指令,用于指示编译器使用标准命名空间 std 中的所有标识符。这意味着在代码中可以直接使用标准库中的各种类、函数和对象,而无需在每个标识符前面添加 std:: 前缀。 以下是关于这条指令的一些解释: using 关键字: using 是一
阅读全文
摘要:目录1. 特性2. 常用成员函数2.1 构造函数2.2 元素访问2.3 修改容器2.4 容量相关2.5 迭代器3. 内存管理与效率4. 示例:5. 性能分析: std::vector 是 C++ 标准库中的一个动态数组容器,位于 #include <vector> 头文件中。它是一个模板类,可以存储
阅读全文