![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++基础知识
文章平均质量分 62
Deng-Yu
这个作者很懒,什么都没留下…
展开
-
stringstream的用法
C++ stringstream的用法 我们应该对string 比较熟悉,就不多赘述,主要学习一下stringstream的用法。 stringstream 类 C++ stringstream 类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据的时候。要想在程序中使用 stringstream 类,我们需要在源程序文件中包含头文件include< sstream>。stringstream 对象的使用方法与cout对象的使用方法基本相同。stringstream 类提供的函数,原创 2022-01-30 21:47:12 · 689 阅读 · 0 评论 -
C++11 智能指针
智能指针 所谓智能指针,可以从字面上理解为“智能”的指针。具体来讲,智能指针和普通指针的用法是相似的,不同之处在于,智能指针可以在适当时机自动释放分配的内存。也就是说,使用智能指针可以很好地避免“忘记释放内存而导致内存泄漏”问题出现。由此可见,C++ 也逐渐开始支持垃圾回收机制了,尽管目前支持程度还有限。 C++ 智能指针底层是采用引用计数的方式实现的。简单的理解,智能指针在申请堆内存空间的同时,会为其配备一个整形值(初始值为 1),每当有新对象使用此堆内存时,该整形值 +1;反之,每当使用此堆内存的对象被原创 2022-01-12 22:24:38 · 129 阅读 · 0 评论 -
C++左值和右值
C++左值和右值 在 C++ 或者 C 语言中,一个表达式(可以是字面量、变量、对象、函数的返回值等)根据其使用场景不同,分为左值表达式和右值表达式。确切的说 C++ 中左值和右值的概念是从 C 语言继承过来的。 值得一提的是,左值的英文简写为“lvalue”,右值的英文简写为“rvalue”。很多人认为它们分别是"left value"、“right value” 的缩写,其实不然。lvalue 是“loactor value”的缩写,可意为存储在内存中、有明确存储地址(可寻址)的数据,而 rvalue原创 2022-01-12 21:55:11 · 313 阅读 · 0 评论 -
C++11 for循环新的用法
C++11 for循环(基于范围的循环)详解 常见的循环表达式: for(表达式 1; 表达式 2; 表达式 3){ //循环体 } 而 C++ 11 标准中,除了可以沿用前面介绍的用法外,还为 for 循环添加了一种全新的语法格式,如下所示: for (declaration : expression){ //循环体 } 其中,两个参数各自的含义如下: declaration:表示此处要定义一个变量,该变量的类型为要遍历序列中存储元素的类型。需要注意的是,C++ 11 标准中,decl原创 2022-01-12 20:54:20 · 536 阅读 · 0 评论 -
C++11非受限联合体(union)
C++11非受限联合体(union) 在 C/C++ 中,联合体(Union)是一种构造数据类型。在一个联合体内,我们可以定义多个不同类型的成员,这些成员将会共享同一块内存空间。老版本的 C++ 为了和C语言保持兼容,对联合体的数据成员的类型进行了很大程度的限制,这些限制在今天看来并没有必要,因此 C++11 取消了这些限制。 C++11 标准规定,任何非引用类型都可以成为联合体的数据成员,这种联合体也被称为非受限联合体。例如: class Student{ public: Student(bool转载 2022-01-12 20:43:39 · 198 阅读 · 0 评论