
c++
文章平均质量分 86
yodala
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++中的内存管理(一)
值得注意的是,传统构造初始化,若不加参数,则进行值初始化。但是对于内置类型:值初始化有着良好定义的值,而默认初始化的对象的值则是未定义的。类似的,对于类中的内置类型成员,如果没有显示初始化,而是仅使用默认构造函数的话,则它们的值也是未定义的。默认情况下,动态分配的对象是默认初始化的,这意味着内置类型或组合类型对象的值将是未定义的,而类类型对象将用默认构造函数初始化。值得注意的是,使用这两个指针的类通常不能依赖于默认的拷贝、赋值、析构函数。分配的内存,或者将相同的指针释放多次,其行为是未定义的。原创 2025-08-14 17:17:16 · 239 阅读 · 0 评论 -
C++中的关联容器
/初始化一个map时,必须提供key, value并包含在花括号中。//定义一个包含20个元素的vec,保持0-9每个整数的两个拷贝i < 10;++i)原创 2025-08-06 17:06:39 · 921 阅读 · 0 评论 -
C++中的泛型算法(三)
反向迭代器就是在容器中从尾元素反向移动的迭代器。其递增递减操作的含义会颠倒过来,++it会移动到前一个元素,–iter会移动到后一个元素。与其他容器不同,list和forward_list因为是链表实现的,应该优先使用成员函数版本得算法而不是通用算法。值得注意的是,反向迭代器需要支持递增和递减运算符,因此forward_list和流迭代器不能创建反向迭代器。插入迭代器绑定一个容器。当创建一个流迭代器时,必须指定迭代器将要读写的对象类型。并不是指向一个位置,而是指向相邻的位置。指向相同的元素的元素位置。原创 2025-08-05 17:40:39 · 855 阅读 · 0 评论 -
C++中的泛型算法(二)
其中,newCallable是一个可调用对象,arg_list是一个逗号分隔的参数列表,对应给定callable的参数。如果我们采用引用捕获的方式捕获一个变量,就必须保障被引用的对象在lambda执行期间是存在的。值捕获[a]:与传值参类似,采用值捕获的前提是变量可以拷贝,不同的是,被捕获的变量的值是在lambda创建时拷贝,而不是调用时拷贝。arg_list的参数可能包含形如_n的名字,表示占位符,_1表示newCallable的第一个参数,_2表示第二个参数,以此类推。要想使用占位符,还得使用。原创 2025-08-02 17:14:05 · 731 阅读 · 0 评论 -
C++中的泛型算法(一)
标准库容器定义的操作集合很小。标准库并未给每个容器添加大量功能,而是提供了一组算法,这些算法大多数都独立于任何特定的类型。这些算法是通用的(泛型的),可以适用于不同类型的容器和元素。大多数算法都定义在algorithm中,numeric中也定义一组数值泛型算法。由于find操作的迭代器,因此我们可以用同样的find函数在任何容器中查找值。值得注意的是,虽然迭代器令算法不依赖于容器,但算法依赖于元素类型的操作。大多数算法都使用了一个或多个元素类型上的操作。例如,find使用了==完成每个元素和给定值的比较。原创 2025-02-18 16:05:02 · 693 阅读 · 0 评论 -
C++中的顺序容器(二)
适配器是标准库中一个通用的概念。添加一个新元素时,如果没有空间容纳新元素,就必须分配新的空间来保存已有元素和新的元素。对于一个给定的适配器,可以使用哪些容器是有限制的,所有适配器都要求容器具有添加和删除元素的能力(array不能)以及访问尾元素的能力(forward_list不能)。为了避免这种代价,vector和string的实现通常会分配比新的空间需求更大的内存空间。例如,stack适配器接受一个顺序容器(array、forward_list除外),使其操作看起来像一个stack一样。原创 2025-02-17 17:47:41 · 1922 阅读 · 0 评论 -
C++中的顺序容器(一)
元素在顺序容器中顺序与其加入容器时的位置相对应。除非有很好的理由选择其他容器,否则使用vector;程序有很多小的元素,且空间的额外开销很重要,则不要使用list或forward_list;要求随机访问,vector、deque;要求在容器的中间插入或删除,list或forward_list;只在头尾插入或删除,deque;输入时要求在中间插入元素,随后要求随机访问:如果在中间插入只是为了排序的话,可以在vector尾部添加元素之后在使用sort排序;原创 2025-02-17 11:41:18 · 687 阅读 · 0 评论 -
C++中的IO库
由于不能拷贝IO对象,因此不能将形参或者返回类型设置为IO类型。进行IO操作的函数通常以引用方式传递和返回。读写一个IO对象会改变其状态,因此传递和返回的引用不能设置为const。每个输出流都管理一个缓冲区,用来保存程序读写的数据。文本串可能被立即打印出来,但也有可能被操作系统保存在缓冲区,随后在打印。每种文件流都定义了默认的文件模式,当未指定文件模式时,就使用默认模式。还有一点值得注意,如果程序崩溃,输出缓冲区不会被刷新。其中,宽字符版本的类型和函数的名字以w开始。原创 2025-02-14 11:43:38 · 888 阅读 · 0 评论 -
C++中的类
类的作者通常需要定义一些辅助函数,比如read、print、add等。尽管这些函数定义的操作与类相关,但它们实际并不属于类本身。这些函数的声明应该和类的声明在同一个头文件中。return is;//print应该减少对格式的控制,这样可以确保用户可以正确控制格式return os;原创 2025-02-10 15:09:28 · 630 阅读 · 0 评论 -
c++中的变量和基本类型(二)
字符型划分为三种:char、signed char、unsigned char。值得注意的是,前两种类型并不一样。char类型会根据编译器的表现为signed活unsigned。变量变量提供一个具名的、可供程序操作的存储空间。对于C++程序员来说,变量和对象一般可以互换使用。作为C++11中的新标准,用花括号初始化得到了全面的应用。这种初始化形式被称为列表初始化。现在不论是初始化对象还是某些时候为对象赋值,都可以使用这样一组由花括号括起来的初始值了。如果定义变量时没有指定初始值,那么会被默认初始化。原创 2025-02-05 17:54:20 · 738 阅读 · 0 评论 -
C++中的函数(二)
记录C++中函数编写过程中值得容易忽略的点原创 2025-01-15 14:13:31 · 998 阅读 · 0 评论 -
C++中的函数(一)
记录C++中函数编写过程中值得容易忽略的点原创 2025-01-14 11:57:18 · 1807 阅读 · 0 评论 -
C++中的语句
本文主要记录中C++语句中,一些平常没有注意到点原创 2025-01-11 17:53:13 · 525 阅读 · 0 评论 -
C++中的数组和指针
/ 一般存在两种声明指针的方式,这两种效果是相同的, 重要的是统一自己的编码风格// *号靠近标识符// *号靠近类型名// 当在一条语句中声明多个指针时,一般使用第一种方式在c++中,指针和数组有着非常紧密的联系。// 等价于 string *p = &nums[0]// 使用auto 推断数组得到也是指针类型// string*p2 = p;// ok, 都是string*// 使用decltype可以得到数组类型newNum = p;原创 2025-01-06 17:57:26 · 435 阅读 · 0 评论 -
C++中的表达式
C++中的表达式由一个或多个操作数通过操作符组合而成。最简单的表达式仅包含一个字面值常量或变量。每个表达式都会产生一个结果。如果表达式中没有操作符,则其计算结果就是操作数本身。除了特殊的用法外,表达式的结果是,可以读取该结果值,但是不允许对它进行赋值。原创 2025-01-09 17:40:57 · 760 阅读 · 0 评论 -
C++的标准库类型
【代码】标准库类型。原创 2025-01-02 17:54:28 · 236 阅读 · 0 评论 -
C++的变量和基本类型
定义类型的同义词,通常被用以以下目的。原创 2024-12-27 11:48:03 · 323 阅读 · 0 评论