-
C++ STL priority_queue容器适配器剖析
所属栏目:[语言] 日期:2022-07-15 热度:52
priority_queue 容器适配器模拟的也是队列这种存储结构,即使用此容器适配器存储元素只能从一端进(称为队尾),从另一端出(称为队头),且每次只能访问 priority_queue 中位于队头的元素。 但是,priority_queue 容器适配器中元素的存和取,遵循的并不是[详细]
-
C++ STL queue容器适配器解析
所属栏目:[语言] 日期:2022-07-15 热度:82
和 stack 栈容器适配器不同,queue 容器适配器有 2 个开口,其中一个开口专门用来输入数据,另一个专门用来输出数据。 这种存储结构最大的特点是,最先进入 queue 的元素,也可以最先从 queue 中出来,即用此容器适配器存储数据具有先进先出(简称 FIFO )[详细]
-
C++ stack STL stack 容器适配器用法简介
所属栏目:[语言] 日期:2022-07-15 热度:168
stack 栈适配器是一种单端开口的容器(如图 1 所示),实际上该容器模拟的就是栈存储结构,即无论是向里存数据还是从中取数据,都只能从这一个开口实现操作。 创建 stack 适配器,大致分为如下几种方式。 1) 创建一个不包含任何元素的 stack 适配器,并采[详细]
-
什么叫做适配器 C++ STL容器适配器详解
所属栏目:[语言] 日期:2022-07-15 热度:103
在详解什么是容器适配器之前,初学者首先要理解适配器的含义。 其实,容器适配器中的适配器,和生活中常见的电源适配器中适配器的含义非常接近。我们知道,无论是电脑、手机还是其它电器,充电时都无法直接使用 220V 的交流电,为了方便用户使用,各个电器[详细]
-
C++ STL unordered_multiset容器说明
所属栏目:[语言] 日期:2022-07-15 热度:162
前面章节详细地介绍了 unordered_set 容器的特定和用法,在此基础上,本节再介绍一个类似的 C++ STL 无序容器,即 unordered_multiset 容器。 所谓类似,指的是 unordered_multiset 容器大部分的特性都和 unordered_set 容器相同,包括: unordered_multis[详细]
-
C++ STL unordered_set容器完全战略
所属栏目:[语言] 日期:2022-07-15 热度:185
我们知道,C++ 11 为 STL 标准库增添了 4 种无序(哈希)容器,前面已经对 unordered_map 和 unordered_multimap 容器做了详细的介绍,本节再讲解一种无序容器,即 unordered_set 容器。 unordered_set 容器,可直译为无序 set 容器,即 unordered_set 容[详细]
-
C++ STL unordered_multimap容器细说
所属栏目:[语言] 日期:2022-07-15 热度:191
C++ STL 标准库中,除了提供有 unordered_map 无序关联容器,还提供有和 unordered_map 容器非常相似的 unordered_multimap 无序关联容器。 和 unordered_map 容器一样,unordered_multimap 容器也以键值对的形式存储数据,且底层也采用哈希表结构存储各个[详细]
-
C++ STL unordered_map删去元素 erase 和clear
所属栏目:[语言] 日期:2022-07-15 热度:175
C++ STL 标准库为了方便用户可以随时删除 unordered_map 容器中存储的键值对,unordered_map 容器类模板中提供了以下 2 个成员方法: erase():删除 unordered_map 容器中指定的键值对; clear():删除 unordered_map 容器中所有的键值对,即清空容器。 本[详细]
-
C++ STL vector插入元素 insert 和emplace 详解
所属栏目:[语言] 日期:2022-07-15 热度:170
vector容器提供了 insert() 和 emplace() 这 2 个成员函数,用来实现在容器指定位置处插入元素,本节将对它们的用法做详细的讲解。 另外,如果想实现在 vector 容器尾部添加元素,可阅读《vector添加元素》一节。 insert() insert() 函数的功能是在 vector[详细]
-
C++ STL vector添加元素 push_back 和emplace_back 详解
所属栏目:[语言] 日期:2022-07-15 热度:97
要知道,向 vector 容器中添加元素的唯一方式就是使用它的成员函数,如果不调用成员函数,非成员函数既不能添加也不能删除元素。这意味着,vector 容器对象必须通过它所允许的函数去访问,迭代器显然不行。 在 《STL vector容器详解》一节中,已经给大家列[详细]
-
C++ STL vector容器访问元素的几种方式
所属栏目:[语言] 日期:2022-07-15 热度:187
学会如何创建并初始化 vector 容器之后,本节继续来学习如何获取(甚至修改)容器中存储的元素。 访问vector容器中单个元素 首先,vector 容器可以向普通数组那样访问存储的元素,甚至对指定下标处的元素进行修改,比如: #include iostream #include vect[详细]
-
C++ STL vector容器迭代器用法详解
所属栏目:[语言] 日期:2022-07-15 热度:89
在《STL array随机访问迭代器》一节中,详细介绍了 array 容器迭代器,vector 容器迭代器和前者有很多相同之处。比如,vector 容器的迭代器也是随机访问迭代器,并且 vector 模板类提供的操作迭代器的成员函数也和 array 容器一样(如表 1 所示)。 表 1 v[详细]
-
C++ STL vector容器详解
所属栏目:[语言] 日期:2022-07-15 热度:79
vector 容器是 STL 中最常用的容器之一,它和 array 容器非常类似,都可以看做是对 C++ 普通数组的升级版。不同之处在于,array 实现的是静态数组(容量固定的数组),而 vector 实现的是一个动态数组,即可以进行元素的插入和删除,在此过程中,vector 会[详细]
-
Java自定义注解
所属栏目:[语言] 日期:2022-07-15 热度:114
前面我们学习了 Java 的基本注解和元注解,如果这两种注解不能满足你的需求,可以自定义注解。下面介绍如何自定义注解。 声明自定义注解使用 @interface 关键字(interface 关键字前加 @ 符号)实现。定义注解与定义接口非常像,如下代码可定义一个简单形[详细]
-
C++ array STL array 容器用法详解
所属栏目:[语言] 日期:2022-07-15 热度:101
array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。在使用上,它比普通数组更安全(原因后续会讲),且效率并没有因此变差。 和其它容器不同,array 容器的大小是固定的,无法动态的[详细]
-
C++ STL array容器访问元素的几种方式
所属栏目:[语言] 日期:2022-07-15 热度:61
当 array 容器创建完成之后,最常做的操作就是获取其中的元素,甚至有时还会通过循环结构获取多个元素。本节就对获取容器中元素的方法做个汇总。 访问array容器中单个元素 首先,可以通过容器名[]的方式直接访问和使用容器中的元素,这和 C++ 标准数组访问[详细]
-
C++ STL array随机访问迭代器
所属栏目:[语言] 日期:2022-07-15 热度:173
在《C++ STL迭代器(iterator)》一节中,已经对迭代器做了详细的介绍,STL 为 array 容器配备了随机访问迭代器,该类迭代器是功能最强大的迭代器。本节将详细介绍 array 容器的迭代器的用法。 在 array 容器的模板类中,和随机访问迭代器相关的成员函数如[详细]
-
Java元注解作用及使用
所属栏目:[语言] 日期:2022-07-15 热度:169
元注解是负责对其它注解进行说明的注解,自定义注解时可以使用元注解。Java 5 定义了 4 个注解,分别是 @Documented、@Target、@Retention 和 @Inherited。Java 8 又增加了 @Repeatable 和 @Native 两个注解。这些注解都可以在 java.lang.annotation 包中[详细]
-
Java反射机制API
所属栏目:[语言] 日期:2022-07-14 热度:67
实现 Java 反射机制的类都位于 java.lang.reflect 包中,java.lang.Class 类是 Java 反射机制 API 中的核心类。本节将从这两个方面讲解 Java 反射机制 API。 可参考《Java反射机制的基本概念》一节中介绍的关于 Java 反射机制获取类对象相关信息的方法,来[详细]
-
Java通过反射访问构造方法
所属栏目:[语言] 日期:2022-07-14 热度:96
为了能够动态获取对象构造方法的信息,首先需要通过下列方法之一创建一个 Constructor 类型的对象或者数组。 getConstructors() getConstructor(Class?parameterTypes) getDeclaredConstructors() getDeclaredConstructor(Class?...parameterTypes) 如果是[详细]
-
Java通过反射执行方法
所属栏目:[语言] 日期:2022-07-14 热度:71
要动态获取一个对象方法的信息,首先需要通过下列方法之一创建一个 Method 类型的对象或者数组。 getMethods() getMethods(String name,Class? parameterTypes) getDeclaredMethods() getDeclaredMethods(String name,Class?...parameterTypes) 如果是访问[详细]
-
Java通过反射访问成员变量
所属栏目:[语言] 日期:2022-07-14 热度:60
通过下列任意一个方法访问成员变量时将返回 Field 类型的对象或数组。 getFields() getField(String name) getDeclaredFields() getDeclaredField(String name) 上述方法返回的 Field 对象代表一个成员变量。例如,要访问一个名称为 price 的成员变量,示[详细]
-
Java在远程方法调用中运用反射机制
所属栏目:[语言] 日期:2022-07-14 热度:93
上一节详细介绍了如何使用 java.lang.reflect 包提供的 Constructor 类获取构造方法的信息、使用 Method 类获取成员方法的信息以及使用 Field 类获取成员变量的信息。 本案例将介绍反射机制在网络编程中的应用,实现如何在客户端通过远程方法调用服务器端[详细]
-
Java流是什么 输入 输出流又是什么
所属栏目:[语言] 日期:2022-07-14 热度:198
在 Java 中所有数据都是使用流读写的。流是一组有序的数据序列,将数据从一个地方带到另一个地方。根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种。 在学习输入和输出流之前,我们要明白为什么应用程序需要输入和输出流。例如,我们[详细]
-
Java系统流
所属栏目:[语言] 日期:2022-07-14 热度:177
每个 Java 程序运行时都带有一个系统流,系统流对应的类为 java.lang.System。Sytem 类封装了 Java 程序运行时的 3 个系统流,分别通过 in、out 和 err 变量来引用。这 3 个系统流如下所示: System.in:标准输入流,默认设备是键盘。 System.out:标准输[详细]