-
C++ STL vector容器访问元素的几种方式
所属栏目:[语言] 日期:2022-07-16 热度:60
学会如何创建并初始化 vector 容器之后,本节继续来学习如何获取(甚至修改)容器中存储的元素。 访问vector容器中单个元素 首先,vector 容器可以向普通数组那样访问存储的元素,甚至对指定下标处的元素进行修改,比如: #include iostream #include vect[详细]
-
C++ STL vector容器迭代器用法详解
所属栏目:[语言] 日期:2022-07-16 热度:147
在《STL array随机访问迭代器》一节中,详细介绍了 array 容器迭代器,vector 容器迭代器和前者有很多相同之处。比如,vector 容器的迭代器也是随机访问迭代器,并且 vector 模板类提供的操作迭代器的成员函数也和 array 容器一样(如表 1 所示)。 表 1 v[详细]
-
C++ STL vector容器详解
所属栏目:[语言] 日期:2022-07-16 热度:131
vector 容器是 STL 中最常用的容器之一,它和 array 容器非常类似,都可以看做是对 C++ 普通数组的升级版。不同之处在于,array 实现的是静态数组(容量固定的数组),而 vector 实现的是一个动态数组,即可以进行元素的插入和删除,在此过程中,vector 会[详细]
-
C++ STL array容器访问元素的几种方式
所属栏目:[语言] 日期:2022-07-16 热度:197
当 array 容器创建完成之后,最常做的操作就是获取其中的元素,甚至有时还会通过循环结构获取多个元素。本节就对获取容器中元素的方法做个汇总。 访问array容器中单个元素 首先,可以通过容器名[]的方式直接访问和使用容器中的元素,这和 C++ 标准数组访问[详细]
-
C++ STL array随机访问迭代器
所属栏目:[语言] 日期:2022-07-16 热度:76
在《C++ STL迭代器(iterator)》一节中,已经对迭代器做了详细的介绍,STL 为 array 容器配备了随机访问迭代器,该类迭代器是功能最强大的迭代器。本节将详细介绍 array 容器的迭代器的用法。 在 array 容器的模板类中,和随机访问迭代器相关的成员函数如[详细]
-
C++ array STL array 容器用法详解
所属栏目:[语言] 日期:2022-07-16 热度:85
array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。在使用上,它比普通数组更安全(原因后续会讲),且效率并没有因此变差。 和其它容器不同,array 容器的大小是固定的,无法动态的[详细]
-
Java自定义注解
所属栏目:[语言] 日期:2022-07-16 热度:96
前面我们学习了 Java 的基本注解和元注解,如果这两种注解不能满足你的需求,可以自定义注解。下面介绍如何自定义注解。 声明自定义注解使用 @interface 关键字(interface 关键字前加 @ 符号)实现。定义注解与定义接口非常像,如下代码可定义一个简单形[详细]
-
Java元注解作用及使用
所属栏目:[语言] 日期:2022-07-16 热度:189
元注解是负责对其它注解进行说明的注解,自定义注解时可以使用元注解。Java 5 定义了 4 个注解,分别是 @Documented、@Target、@Retention 和 @Inherited。Java 8 又增加了 @Repeatable 和 @Native 两个注解。这些注解都可以在 java.lang.annotation 包中[详细]
-
C++ STL vector删除元素的几种方式 超级具体
所属栏目:[语言] 日期:2022-07-16 热度:85
前面提到,无论是向现有 vector 容器中访问元素、添加元素还是插入元素,都只能借助 vector 模板类提供的成员函数,但删除 vector 容器的元素例外,完成此操作除了可以借助本身提供的成员函数,还可以借助一些全局函数。 基于不同场景的需要,删除 vecotr[详细]
-
C++ STL deque容器迭代器用法解说
所属栏目:[语言] 日期:2022-07-16 热度:107
deque 容器迭代器的类型为随机访问迭代器,deque 模板类提供了表 1 所示这些成员函数,通过调用这些函数,可以获得表示不同含义的随机访问迭代器。 有关迭代器及其类型的介绍,可以阅读《C++ STL迭代器(iterator)》一节,本节不再做具体介绍。 成员函数[详细]
-
C++ STL deque容器访问元素 4种办法
所属栏目:[语言] 日期:2022-07-16 热度:95
通过《STL deque容器》一节,详细介绍了如何创建一个 deque 容器,本节继续讲解如何访问(甚至修改)deque 容器存储的元素。 和 array、vector 容器一样,可以采用普通数组访问存储元素的方式,访问 deque 容器中的元素,比如: #include iostream #includ[详细]
-
C++ STL deque容器增加和删除元素方法完全攻略
所属栏目:[语言] 日期:2022-07-16 热度:81
deque 容器中,无论是添加元素还是删除元素,都只能借助 deque 模板类提供的成员函数。表 1 中罗列的是所有和添加或删除容器内元素相关的 deque 模板类中的成员函数。 表 1 和添加或删除deque容器中元素相关的成员函数 成员函数 功能 push_back() 在容器现[详细]
-
C++ list STL list 容器完全攻略 非常详细
所属栏目:[语言] 日期:2022-07-16 热度:84
STL list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。 可以看到,list 容器中各个元素的前后顺序是靠指针来维系的,每个元素都配[详细]
-
C++ STL list迭代器及用法 细说版
所属栏目:[语言] 日期:2022-07-16 热度:175
只有运用迭代器,才能访问 list 容器中存储的各个元素。list 模板类提供了如表 1 所示的这些迭代器函数。 表 1 list 容器迭代器函数 迭代器函数 功能 begin() 返回指向容器中第一个元素的双向迭代器(正向迭代器)。 end() 返回指向容器中最后一个元素所在[详细]
-
C++ list STL list 访问元素的几种办法
所属栏目:[语言] 日期:2022-07-16 热度:189
不同于之前学过的 STL 容器,访问 list 容器中存储元素的方式很有限,即要么使用 front() 和 back() 成员函数,要么使用 list 容器迭代器。 list 容器不支持随机访问,未提供下标操作符 [] 和 at() 成员函数,也没有提供 data() 成员函数。 通过 front()[详细]
-
C++ STL list增加 插入 元素方法详解
所属栏目:[语言] 日期:2022-07-16 热度:110
前面章节介绍了如何创建 list 容器,在此基础上,本节继续讲解如何向现有 list 容器中添加或插入新的元素。 list 模板类中,与添加或插入新元素相关的成员方法有如下几个: push_front():向 list 容器首个元素前添加新元素; push_back():向 list 容器最[详细]
-
C++ STL list删掉元素详解
所属栏目:[语言] 日期:2022-07-16 热度:129
对 list 容器存储的元素执行删除操作,需要借助该容器模板类提供的成员函数。幸运的是,相比其它 STL 容器模板类,list 模板类提供了更多用来实现此操作的成员函数(如表 1 所示)。 表 1 实现 list 容器删除元素的成员函数 成员函数 功能 pop_front() 删[详细]
-
C++ STL forward_list容器完全策略
所属栏目:[语言] 日期:2022-07-16 热度:197
forward_list 是 C++ 11 新添加的一类容器,其底层实现和 list 容器一样,采用的也是链表结构,只不过 forward_list 使用的是单链表,而 list 使用的是双向链表(如图 1 所示)。 使用链表存储数据最大的特点在于,其并不会将数据进行集中存储(向数组那样[详细]
-
C++ STL pair用法说明
所属栏目:[语言] 日期:2022-07-15 热度:70
我们知道,关联式容器存储的是键值对形式的数据,比如: C语言教程, http://c.biancheng.net/c/ Python教程, http://c.biancheng.net/python/ Java教程, http://c.biancheng.net/java/ 如上所示,每行都表示一个键值对,其中第一个元素作为键(key),第二[详细]
-
C++ STL map容器解说
所属栏目:[语言] 日期:2022-07-15 热度:67
作为关联式容器的一种,map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。其中,各个键值对的键和值可以是任意数据类型,包括 C++ 基本数据类型(int、double 等)、使用结构体或类自定义的类型。 通常情况下,map 容器中存储的各个键值[详细]
-
C++ STL map容器迭代器用处详解
所属栏目:[语言] 日期:2022-07-15 热度:178
无论是前面学习的序列式容器,还是关联式容器,要想实现遍历操作,就必须要用到该类型容器的迭代器。当然,map 容器也不例外。 C++ STL 标准库为 map 容器配备的是双向迭代器(bidirectional iterator)。这意味着,map 容器迭代器只能进行 ++p、p++、--p[详细]
-
C++ STL map获取键对应值的几种方法 超具体
所属栏目:[语言] 日期:2022-07-15 热度:95
我们知道,map 容器中存储的都是 pair 类型的键值对,但几乎在所有使用 map 容器的场景中,经常要做的不是找到指定的 pair 对象(键值对),而是从该容器中找到某个键对应的值。 注意,使用 map 容器存储的各个键值对,其键的值都是唯一的,因此指定键对应[详细]
-
C++ STL map insert 插入数据的4种办法
所属栏目:[语言] 日期:2022-07-15 热度:95
前面讲过,C++ STL map 类模板中对[ ]运算符进行了重载,即根据使用场景的不同,借助[ ]运算符可以实现不同的操作。举个例子: #include iostream #include map //map #include string //string using namespace std; int main() { std::mapstring, string[详细]
-
C++ STL map emplace 和emplace_hint方式详解
所属栏目:[语言] 日期:2022-07-15 热度:77
学习 map insert() 方法时提到,C++ STL map 类模板中还提供了 emplace() 和 emplace_hint() 成员函数,也可以实现向 map 容器中插入新的键值对。本节就来讲解这 2 个成员方法的用法。 值得一提的是,实现相同的插入操作,无论是用 emplace() 还是 emplace[详细]
-
C++ STL multimap容器用法完全策略
所属栏目:[语言] 日期:2022-07-15 热度:193
在掌握 C++ STL map 容器的基础上,本节再讲一个和 map 相似的关联式容器,即 multimap 容器。 所谓相似,指的是 multimap 容器具有和 map 相同的特性,即 multimap 容器也用于存储 pairconst K, T 类型的键值对(其中 K 表示键的类型,T 表示值的类型),[详细]