赞
踩
目录
STL 是指标准模板库(Standard Template Library)的缩写。它是 C++ 的一个标准库,提供了许多通用的模板类和函数,用于实现常用的数据结构和算法。STL 是 C++ 中广泛使用的一个库,被认为是 C++ 的核心之一。
容器(Containers):包括向量(vector)、列表(list)、双端队列(deque)、栈(stack)、队列(queue)、优先队列(priority_queue)、集合(set)、映射(map)等,用于存储和管理数据。
迭代器(Iterators):提供了一种访问容器中元素的通用方式,包括输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器。
算法(Algorithms):包括排序、查找、遍历、修改、复制、合并、反转、旋转等常用算法。
仿函数(函数对象)(Functors):是可调用对象,可以像函数一样使用,用于定制算法的行为。
空间配置器(Allocator):用于管理动态内存的分配和释放。
适配器(Adapters):用于将容器或函数对象转换成其他类型,以适应不同的需求。包括容器适配器(如栈和队列的适配器)、迭代器适配器(如反向迭代器和插入迭代器)和函数适配器(如绑定器和取反器)。
1)除非有很好的理由选择其他容器,否则使用vector是最好的选择。
2)如果程序有很多小元素且空间的额外开销很重要,不要使用list或forward_list。
3)要求随机访问元素,应该使用vector或deque。
4)要求中间插入或删除元素,应该使用list或forward_list。
5)要求在头尾插入或删除元素,且中间不进行插入或删除,应该使用deque。
6)如果只在读取输入时才需要在容器中间位置插入元素,随后需要随机访问元素。首先可以考虑在读取输入时使用vector,再调用sort函数重排容器中的元素,从而避免在中间位置添加元素。如果必须在中间位置插入元素,考虑在输入阶段使用list,输入完成将list拷贝到vector中。
注意:如果实在不确定使用哪种容器,可以在程序中只使用vector和list的公共操作迭代器而非下标,避免随机访问。这样可以在必要时选择使用vector或list。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。