首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ STL:vector跟list

2013-09-24 
C++ STL:vector和listSTL 描述:C标准模块库是一个提供了公共编程数据结构和函数的模板类集合,如双连接表(l

C++ STL:vector和list
STL 描述:

C++标准模块库是一个提供了公共编程数据结构和函数的模板类集合,如双连接表(list),配对数组(map),可扩展数组(vector),大串的存储操作(rope)等。STL库可以从http://www.sgi.com/tech/stl/ 获取。


STL可以分为以下几类:

容器类:顺序容器:vector:动态数组变量,结构体或对象。可以插入在末尾插入数据,支持快速随机访问。deque: 支持在数组的前面和后面插入元素,双端队列。list: 基于链表的变量、结构或对象。可以在任何地方插入和删除元素。支持快速插入、删除。关联容器:set (不允许有重复元素在set中), multiset (可以有重复元素): 平衡二叉树结构有序的数据的集合,能快速搜索。map (唯一keys), multimap (允许重复keys): 关联键 - 值对的平衡二叉树结构。容器适配器:stack LIFO 栈queue FIFO 队列priority_queue 返回最高优先级的元素,优先级队列字符串:string:字符串及其操作rope: 字符串存储和操作bitset: 直观的存储位和操作位。泛型算法:迭代器iterator: 代表容器中的位置,一个迭代器定义为一个容器类类型。算法algorithm: 提供查找,计数,搜索容器中的元素的类。智能指针auto_ptr: 关联内存指针避免内存泄露的类。STL vector:   初始化:      vector<int> ivec;      vector<int > vec2(ivec);     vector c (iter.begin,iter.end);      vecotr<int > c(5,0);       vector<int> c(5);
         example 1: 用vector存储STL strings,并且用三种方法类访问vector中的元素:
方法/操作描述vector<T> v;声明一个数据类型为 "T"的vector变量v.vector<T> v(size_type n);声明一个大小为n,包含数据类型T的vector变量vector<T> v(size_type n,const T& t);声明一个大小为n,包含数据类型为T,元素的值为t的vector变量
Declaration: vector(size_type n, const T& t)vector<T> v(begin_iterator,end_iterator);从迭代器开始位置到结束位置拷贝一个vector
Declaration: template vector(InputIterator, InputIterator)

Size 方法/操作: 

Method/operatorDescriptionempty()Returns bool (true/false). True if empty.
Declaration: bool empty() constsize()Number of elements of vector.
Declaration: size_type size() constresize(n, t=T())Adjust by adding or deleting elements of vector so that its size is "n".
Declaration: void resize(n, t = T())capacity()Max number of elements of vector before reallocation.
Declaration: size_type capacity() constreserve(size_t n)Max number of elements of vector set to "n" before reallocation.
Declaration: void reserve(size_t)max_size()Max number of elements of vector possible.
Declaration: size_type max_size() const  其他方法和操作:
Method/operatorDescriptionerase()
clear()Erase all elements of vector.
Declaration: void clear()erase(iterator)
erase(begin_iterator,end_iterator)Erase element of vector. Returns iterator to next element.
Erase element range of vector. Returns iterator to next element.
Declarations:iterator erase(iterator pos) iterator erase(iterator first, iterator last) =
Example: X=Y()Assign/copy entire contents of one vector into another.
Declaration: vector& operator=(const vector&)<Comparison of one vector to another.
Declaration: bool operator<(const vector&, const vector&)==Returns bool. True if every element is equal.
Declaration: bool operator==(const vector&, const vector&)at(index)
v[index]Element of vector. Left and Right value assignment: v.at(i)=e; and e=v.at(i);
Declaration: reference operator[](size_type n)front()
v[0]First element of vector. (Left and Right value assignment.)
Declaration: reference front()back()Last element of vector. (Left and Right value assignment.)
Declaration: reference back()push_back(const T& value)Add element to end of vector.
Declaration: void push_back(const T&)pop_back()Remove element from end of vector.
Declaration: void pop_back()assign(size_type n,const T& t)Assign first n elements a value "t".assign(begin_iterator,end_iterator)Replace data in range defined by iterators.
Declaration: insert(iterator, const T& t)Insert at element "iterator", element of value "t".
Declaration: iterator insert(iterator pos, const T& x)insert(iterator pos, size_type n, const T& x)Starting before element "pos", insert first n elements of value "x".
Declaration: void insert(iterator pos, size_type n, const T& x)insert(iterator pos, begin_iterator,end_iterator)Starting before element "pos", insert range begin_iterator to end_iterator.
Declaration: void insert(iterator pos, InputIterator f, InputIterator l)swap(vector& v2)Swap contents of two vectors.
Declaration: void swap(vector&)
迭代器方法/操作Method/operatorDescriptionbegin()Return iterator to first element of vector.
Declaration: const_iterator begin() constend()Return iterator to end of vector (not last element of vector but past last element)
Declaration: const_iterator end() constrbegin()Return iterator to first element of vector (reverse order).
Declaration: const_reverse_iterator rbegin() constrend()Return iterator to end of vector (not last element but past last element) (reverse order).
Declaration: const_reverse_iterator rend() const++Increment iterator.--Decrement iterator.
STL list:

两个例子:

    第一个为数据类型为int第二个为类实例
example 1:
Functionvectorlistconstructoryesyesdestructoryesyesempty()yesyessize()yesyesresize()yesyescapacity()yesnoreserve()yesnomax_size()yesyeserase()yesyesclear()yesyesoperator=yesyesoperator<yesyesoperator==yesyesoperator[]yesnoat()yesnofront()yesyesback()yesyespush_back()yesyespop_back()yesyesassign()yesyesinsert()yesyesswap()yesyespush_front()noyespop_front()noyesmerge()noyesremove()noyesremove_if()noyesreverse()noyessort()noyessplice()noyesunique()noyes

热点排行