模板类 map_std<I, T, ALLOC>
为标准库关联容器 std::map
提供了一个包装器。该包装器有一个简单的目的。它允许在声明稀疏容器类型时定义默认模板参数(对于适配数组)。
#include <boost/numeric/ublas/storage_sparse.hpp> int main () { using namespace boost::numeric::ublas; map_std<int, double> a (3); for (unsigned i = 0; i < a.size (); ++ i) { a [i] = i; std::cout << a [i] << std::endl; } }
定义于头文件 storage_sparse.hpp 中。
参数 | 描述 | 默认值 |
---|---|---|
I |
存储在数组中的索引类型。 | |
T |
存储在数组中的对象类型。 | |
ALLOC |
一个 STL 分配器 | std::allocator |
可逆容器。
无,除了可逆容器的要求所施加的那些。
std::map
模板类 map_array<I, T, ALLOC>
将类似 std::map
的关联容器实现为排序数组。因此,它具有关联容器接口的某些特性,但语义与 std::map 不同。
在任何时候,map_array
都有一个容量上限,在此上限内可以插入新元素。如果 insert
操作会导致 map_array
的大小超过其容量,则会进行重新分配。迭代器和引用将失效。容量可以使用 reserve
成员函数直接控制。
#include <boost/numeric/ublas/storage_sparse.hpp> int main () { using namespace boost::numeric::ublas; map_array<int, double> a (3); for (unsigned i = 0; i < a.size (); ++ i) { a [i] = i; std::cout << a [i] << std::endl; } }
定义于头文件 storage_sparse.hpp 中。
参数 | 描述 | 默认值 |
---|---|---|
I |
存储在数组中的索引类型。 | |
T |
存储在数组中的对象类型。 | |
ALLOC |
一个 STL 分配器 | std::allocator |
可逆容器。
无,除了可逆容器的要求所施加的那些。
无。
成员 | 描述 |
---|---|
map_array (ALLOC &a = ALLOC()) |
分配一个最多可容纳零个元素的 map_array 。 |
map_array (const map_array &c) |
复制构造函数。 |
~map_array () |
释放 map_array 本身。 |
void reserve (size_type capacity) |
更改 map_array 的容量。它最多可以容纳 capacity 个元素而无需重新分配。容量可以减少,但要满足 capacity >= size() 。map_array 的内容会被保留。 |
size_type size () const |
返回 map_array 的大小。 |
size_type size () const |
返回 map_array 的容量。 |
data_reference operator [] (index_type i) |
返回与特定索引关联的元素的引用。如果 map_array 尚未包含此类元素,则 operator[] 会插入默认的 T () 。 |
map_array &operator = (const map_array &a) |
赋值运算符。 |
map_array &assign_temporary (map_array &a) |
赋值一个临时对象。可能会更改数组 a 。 |
void swap (map_array &a) |
交换数组的内容。 |
std::pair |
将 p 插入到数组中。如果 p 被插入则返回值的第二部分为 true ,如果 p 因为已经存在而未被插入则为 false 。 |
iterator insert (iterator it, const value_type &p) |
将 p 插入到数组中,使用 it 作为插入位置的提示。 |
void erase (iterator it) |
删除 it 位置的值。 |
void clear () |
清空数组。 |
const_iterator find (index_type i) const |
查找索引为 i 的元素。 |
iterator find (index_type i) |
查找索引为 i 的元素。 |
const_iterator lower_bound (index_type i) const |
查找索引不小于 i 的第一个元素。 |
iterator lower_bound (index_type i) |
查找索引不小于 i 的第一个元素。 |
const_iterator upper_bound (index_type i) const |
查找索引大于 i 的第一个元素。 |
iterator upper_bound (index_type i) |
查找索引大于 i 的第一个元素。 |
const_iterator begin () const |
返回一个指向 map_array 开头的 const_iterator 。 |
const_iterator end () const |
返回一个指向 map_array 结尾的 const_iterator 。 |
iterator begin () |
返回一个指向 map_array 开头的 iterator 。 |
iterator end () |
返回一个指向 map_array 结尾的 iterator 。 |
const_reverse_iterator rbegin () const |
返回一个指向反向 map_array 开头的 const_reverse_iterator 。 |
const_reverse_iterator rend () const |
返回一个指向反向 map_array 结尾的 const_reverse_iterator 。 |
reverse_iterator rbegin () |
返回一个指向反向 map_array 开头的 reverse_iterator 。 |
reverse_iterator rend () |
返回一个指向反向 map_array 结尾的 reverse_iterator 。 |
版权所有 (©) 2000-2002 Joerg Walter, Mathias Koch
使用、修改和分发受 Boost 软件许可 1.0 版的约束。(请参阅随附文件 LICENSE_1_0.txt 或在 https://boost.ac.cn/LICENSE_1_0.txt 复制副本)。