一下这段代码可以很清晰的表述出这四个函数的区别
ilist是一个list<int>类型
if (!ilist.empty()) {
// val 和val2 指向相同的元素
list<int>::reference val = *ilist.begin();
list<int>::reference val2 = ilist.front();
// last 和last2指向相同的元素
list<int>::reference last = *--ilist.end();
list<int>::reference last2 = ilist.back();
}
分享到:
相关推荐
- **`back()`** 和 **`front()`**:分别返回容器的最后一个元素和第一个元素的引用。 - **`c[n]`** 和 **`at(n)`**:这两种方法均可用于访问指定索引的元素。其中`at(n)`会在索引无效时抛出异常。 #### 删除元素 ...
5. **遍历容器**:使用范围for循环和迭代器遍历容器,了解`begin()`, `end()`, `rbegin()`, `rend()`的区别。 6. **容器操作**:掌握`swap()`, `clear()`, `erase()`等操作,理解其对容器的影响。 7. **容器比较**:...
- `end()` 返回指向容器中最后一个元素后一个位置的迭代器。注意,这个位置不是有效的元素位置,但它可以用于循环结束条件等。 - **front() 和 back()** - `front()` 返回对容器中第一个元素的引用。 - `back()` ...
int result = accumulate(listOne.begin(), listOne.end(), 0); cout ; return 0; } ``` 在上面的示例代码中,我们创建了一个链表对象,并向链表中添加了四个元素。然后,我们使用迭代器遍历链表,并显示链表中...
这些序列容器都提供了基本的成员函数,如push_back()、push_front()、insert()、erase()、clear()等,用于对容器中的元素进行操作。 关联容器 关联容器是一种特殊的数据结构,用于存储键值对。STL提供了以下几种...
每个容器都有`begin()`和`end()`成员函数,分别返回指向容器首元素的迭代器和一个超出容器范围的迭代器,允许程序员用迭代器进行循环遍历。 算法是STL的另一核心部分,它们是一组通用的函数对象和函数模板,用于对...
* `c.erase(begin, end)`:删除begin,end区间的数据,返回指向下一个数据位置的指针(迭代器)。 * `c.clear();`:清除所有数据。 ### 4. 反转和交换 * `c.rbegin();`:将vector反转后的开始指针返回(其实就是...
- **begin/end**: 返回指向容器中第一个/最后一个元素之后的迭代器。 - `c.begin()`: 返回指向容器中第一个元素的迭代器。 - `c.end()`: 返回指向容器中最后一个元素之后的迭代器。 - **capacity**: 返回容器当前...
14. `v.insert(v.begin(), v2.end() - 2, v2.end())`: 将容器 v2 的最后两个元素插入容器 v 的头部,返回新添加元素的第一个元素的迭代器。 15. `v.push_back(t)`: 尾部追加元素 t。 16. `v.pop_back()`: 删除尾元素...
### C++容器知识点总结 #### 一、Vector **理论** `Vector` 是 C++ 标准库中的一个动态数组容器。它支持随机访问,并且能够自动管理内存。`Vector` 的内部实现是一个连续的内存区域,这使得它可以提供快速的随机...
在学习 deque 容器时,我们需要记忆一些重要的函数原型,如 push_front()、pop_front()、push_back()、pop_back()、insert()、front()、back()、begin() 和 end() 等。这些函数可以帮助我们更好地操作 deque 容器。 ...
- `reverse`: 反转容器中元素的顺序。 - `accumulate`: 对容器中元素求和。 - `upper_bound`, `lower_bound`: 查找元素的边界位置。 通过掌握STL容器和算法,可以显著提高C++编程的效率和代码质量,避免了重复造...
例如,`iterator = container.begin()` 和 `iterator = container.end()` 分别表示容器的起始和结束位置,`*iterator` 可以获取当前迭代器指向的元素,`++iterator` 移动到下一个元素。 STL还提供了许多算法,如...
- `reverse()`:反转容器中的元素顺序。 #### 三、关联式容器 关联式容器主要用于处理键值对,通常基于红黑树或哈希表实现,主要包括set、multiset、map和multimap等。 ##### 4. Set 容器 - **定义**:`set`是...
- deque提供了`begin()`和`end()`返回迭代器,可以遍历deque的所有元素。 ### deque与vector的区别 - **内存分配**:deque由多个小块组成,而vector是一段连续的内存空间。这使得deque在两端操作更快,但随机访问...
这些容器不像序列式容器(如vector、list)那样有明显的头部和尾部,也不提供push_back、push_front、pop_back、pop_front等操作。相反,关联式容器主要提供了对元素基于键值的快速查找、插入和删除功能,这得益于...
6. `begin()`和`end()`: 返回指向容器首尾元素的迭代器。 7. `rbegin()`和`rend()`: 返回反向迭代器,用于反向遍历容器。 8. `size()`: 返回容器中元素的数量。 9. `max_size()`: 返回容器能够容纳的最大元素数量。 ...
vector用于存储对象数组 常用方法 1.push_back 在数组的最后添加一个数据 2.pop_back 去掉数组的最后一个数据 3.at 得到编号位置的数据 4.begin 得到数组头的指针 5.end 得到数组的最后一个单元+1的指针 6.front ...
`deque`还支持迭代器操作,包括`begin()`、`end()`、`rbegin()`和`rend()`,以及插入和删除元素的函数。 `deque`和`vector`的另一个关键区别在于内存分配策略。`vector`在增长时会一次性分配新的内存块并拷贝现有...