-
何为C++ STL容器
所属栏目:[语言] 日期:2023-04-21 热度:664
在实际的开发过程中,合理组织数据的存取与选择处理数据的算法同等重要,存取数据的方式往往会直接影响到对它们进行增删改查操作的复杂程度和时间消耗。事实上,当程序中存在对时耗要求很高的部分时,数据结构的选择[详细]
-
GNU开源精神及它的发展进程
所属栏目:[语言] 日期:2023-04-21 热度:181
通过前面对 STL 各种“民间”版本的介绍我们知道,全世界所有的 STL 实现版本都源于 Stepanov 和 Meng Lee 完成的原始版本(也就是 HP STL),该版本的每一个头文件中都有一份声明,即允许任何人任意运用、[详细]
-
C++ STL基础 组成 6大组件+13个头文件
所属栏目:[语言] 日期:2023-04-21 热度:9392
通常认为,STL 是由容器、算法、迭代器、函数对象、适配器、内存分配器这 6 部分构成,其中后面 4 部分是为前 2 部分服务的。STL 组成结构STL的组成含义容器一些封装数据结构的模板类,例如 vector 向量容器、list 列[详细]
-
C++ STL版本有哪几种
所属栏目:[语言] 日期:2023-04-21 热度:152
自 1998 年 ANSI/ISO C++ 标准正式定案,C++ STL 规范版本正式通过以后,由于其实开源的,各个 C++ 编译器厂商在此标准的基础上,实现了满足自己需求的 C++ STL 泛型库,主要包括 HP STL、SGI STL、STLport、PJ STL、[详细]
-
C++ STL的进展历程是怎样的
所属栏目:[语言] 日期:2023-04-21 热度:7666
Alexander Stepanov(后被誉为 STL 标准模板库之父,后简称 Stepanov),1950 年出生与前苏联的莫斯科,他曾在莫斯科大学研究数学,此后一直致力于计算机语言和泛型库研究。在 20 世纪 70 年代,Stepanov 开始考虑,[详细]
-
C++ STL是什么 有何用
所属栏目:[语言] 日期:2023-04-21 热度:7179
在已有 C++ 尤其是 C++ 模板的基础上,从本节开始,我们开始系统地学习 STL 标准模板库,首先来了解什么是 STL,以及学习 STL 有什么用?STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,[详细]
-
C++11 shared_ptr智能指针 很详细
所属栏目:[语言] 日期:2023-04-20 热度:728
在实际的 C++ 开发中,我们经常会遇到诸如程序运行中突然崩溃、程序运行所用内存越来越多最终不得不重启等问题,这些问题往往都是内存资源管理不当造成的。比如:有些内存资源已经被释放,但指向它的指针并没有改变指[详细]
-
C++11 move()函数 将左值强制变换为右值
所属栏目:[语言] 日期:2023-04-20 热度:621
通过学习 《C++11移动构造函数》一节我们知道,C++11 标准中借助右值引用可以为指定类添加移动构造函数,这样当使用该类的右值对象(可以理解为临时对象)初始化同类对象时,编译器会优先选择移动构造函数。注意,移[详细]
-
C++11右值引用 一看就明白
所属栏目:[语言] 日期:2023-04-20 热度:2268
《C++11是什么》一节中提到,在 C++98/03 标准的基础上,C++11 标准对 C++ 语言增添了约 140 个新特性。本节要讲的右值引用就是众多新特性中的一个,同时也是最重要的特性之一。很多初学者都感觉右值引用晦涩难懂,其[详细]
-
C++11 long long超长整形解说
所属栏目:[语言] 日期:2023-04-20 热度:8295
C++ 11 标准中,基于整数大小的考虑,共提供了如表 1 所示的这些数据类型。与此同时,标准中还明确限定了各个数据类型最少占用的位数。C++11 标准规定,每种整数类型必须同时具备有符号(signed)和无符号(unsigned[详细]
-
C++11 constexpr 验证是不是为常量 表达式
所属栏目:[语言] 日期:2023-04-20 热度:1220
constexpr 是 C++ 11 标准新引入的关键字,不过在讲解其具体用法和功能之前,读者需要先搞清楚 C++ 常量表达式的含义。所谓常量表达式,指的就是由多个(1)常量组成的表达式。换句话说,如果表达式中的成员都是常量[详细]
-
C++11 for循环 基于范围的循环 说明
所属栏目:[语言] 日期:2023-04-20 热度:454
C++ 11标准之前(C++ 98/03 标准),如果要用 for 循环语句遍历一个数组或者容器,只能套用如下结构:for(表达式 1; 表达式 2; 表达式 3){ //循环体}例如,下面程序演示了用上述结构遍历数组和容器的具体实现过程([详细]
-
C++11 lambda匿名函数用法剖析
所属栏目:[语言] 日期:2023-04-20 热度:5994
lambda 源自希腊字母表中第 11 位的 λ,在计算机科学领域,它则是被用来表示一种匿名函数。所谓匿名函数,简单地理解就是没有名称的函数,又常被称为 lambda 函数或者 lambda 表达式。继 Python、Java、C#、P[详细]
-
C++11 tuple元组解析
所属栏目:[语言] 日期:2023-04-20 热度:3246
C++11 标准新引入了一种类模板,命名为 tuple(中文可直译为元组)。tuple 最大的特点是:实例化的对象可以存储任意数量、任意类型的数据。tuple 的应用场景很广泛,例如当需要存储多个不同类型的元素时,可以使用 t[详细]
-
C++11支撑函数模板的 默认模板参数
所属栏目:[语言] 日期:2023-04-20 热度:5296
在 C++98/03 标准中,类模板可以有默认的模板参数,如下:template <typename T, typename U = int, U N = 0>struct Foo{// ...};但是却不支持函数的默认模板参数:template <typename T = int> // error in C++98/0[详细]
-
C++11利用using定义别名 替代typedef
所属栏目:[语言] 日期:2023-04-20 热度:9277
大家都知道,在 C++ 中可以通过 typedef 重定义一个类型:typedef unsigned int uint_t;被重定义的类型并不是一个新的类型,仅仅只是原有的类型取了一个新的名字。因此,下面这样将不是合法的函数重载:void func(un[详细]
-
C++返回值类型后设 跟踪返回值类型
所属栏目:[语言] 日期:2023-04-18 热度:5872
在泛型编程中,可能需要通过参数的运算来得到返回值的类型。考虑下面这个场景:template <typename R, typename T, typename U>R add(T t, U u){return t+u;}int a = 1; float b = 2.0;auto c = add<decltype(a + b)[详细]
-
C++移动与获取文件读写指针 seekp seekg tellg tellp
所属栏目:[语言] 日期:2023-04-18 热度:1198
在读写文件时,有时希望直接跳到文件中的某处开始读写,这就需要先将文件的读写指针指向该处,然后再进行读写。ifstream 类和 fstream 类有 seekg 成员函数,可以设置文件读指针的位置;ofstream 类和 fstream 类有 [详细]
-
C++ getline() 从文件中获取一行字符串
所属栏目:[语言] 日期:2023-04-18 热度:9513
《cin.getline()》一节中,详细介绍了如何使用 getline() 方法从 cin 输入流缓冲区中读取一行字符串。在此基础上,getline() 方法还适用于读取指定文件中的一行数据,本节就给大家做详细的讲解。我们知道,getline()[详细]
-
C++文本文件读写操作解说
所属栏目:[语言] 日期:2023-04-18 热度:4777
前面章节中,已经给大家介绍了文件流对象如何调用 open() 方法打开文件,并且在读写(又称 I/O )文件操作结束后,应调用 close() 方法关闭先前打开的文件。那么,如何实现对文件内容的读写呢?接下来就对此问题做详[详细]
-
C++ close()关闭文件办法详解
所属栏目:[语言] 日期:2023-04-18 热度:3236
《C++ open打开文件》一节中,详细介绍了文件流对象如何调用 open() 成员方法打开指定文件。相对应地,文件流对象还可以主动关闭先前打开的文件,即调用 close() 成员方法。我们知道,调用 open() 方法打开文件,是文[详细]
-
C++ open 打开文件 包括打开模式一览表
所属栏目:[语言] 日期:2023-04-18 热度:6252
在对文件进行读写操作之前,先要打开文件。打开文件有以下两个目的:通过指定文件名,建立起文件和文件流对象的关联,以后要对文件进行操作时,就可以通过与之关联的流对象来进行。指明文件的使用方式。使用方式有只[详细]
-
C++文件类 文件流类 及用法解说
所属栏目:[语言] 日期:2023-04-18 热度:3583
《C++输入输出流》一章中讲过,重定向后的 cin 和 cout 可分别用于读取文件中的数据和向文件中写入数据。除此之外,C++ 标准库中还专门提供了 3 个类用于实现文件操作,它们统称为文件流类,这 3 个类分别为:ifstre[详细]
-
C++ decltype类别推导完全攻略
所属栏目:[语言] 日期:2023-04-18 热度:2659
decltype 是 C++11 新增的一个关键字,它和 auto 的功能一样,都用来在编译时期进行自动类型推导。不了解 auto 用法的读者请转到《C++ auto》。decltype 是“declare type”的缩写,译为“声明类型&r[详细]
-
C++ auto类型推导完全战略
所属栏目:[语言] 日期:2023-04-18 热度:7703
在 C++11 之前的版本(C++98 和 C++ 03)中,定义变量或者声明变量之前都必须指明它的类型,比如 int、char 等;但是在一些比较灵活的语言中,比如 C#、JavaScript、PHP、Python 等,程序员在定义变量时可以不指明具[详细]
