vector
来源:互联网 发布:unity3d 反射材质 编辑:程序博客网 时间:2024/04/30 06:14
Vector的常用成员函数
构造函数:
vector()
说明:默认构造函数
Example:vector< int > iv;
vector( SizeType count )
说明:构造一个vector,初始元素个数为count,初始值均为0
Example: vector< int > iv(3);
vector( SizeType count, ConstType &Val )
说明:构造一个vector,初始元素个数为count,初始值均为Val
Example: vector< int > iv( 3, 2 );
vector( const _vector& SourceVector )
说明:构造一个Vector,并将SouceVector中的元素完全Copy到构建的Vector中
Example: vector< int > iv1;
vector< int > iv2( iv1 );
其他成员函数:
reference at( size_type Pos )
说明:取得vector在Pos位置的元素的引用,此函数和数组下标用法类似。
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
int i = iv.at(2); //此时i的值应该是3,
reference back()
说明:返回vector最尾部元素的引用,相当于at( LastPos )。
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
int i = iv.back();//此时i的值应该是3,
iterator begin()
说明:返回Vector初始位置的迭代器(iterator)。————〉○2
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
vector<int>::iterator It = iv.begin();
int i = *It; //此时i的值应该是1,
○2在这里顺便简单介绍一下迭代器(iterator)。为了将容器和演算法联系起来,需要一种指向容器中元素的指针,它的使用方法必须类似于原生指针,也就是说我们可以利用*Iter取得元素本身,也可以利用Iter->调用元素的成员函数,甚至我们可能利用Iter++或者Iter--方式来取得元素序列中前一个或者后一个元素(当然某些容器的迭代器不支持这样的操作)。为了更好的封装迭代器的内部实现以及提高性能,每一个容器都有其独立的迭代器,这些特定的迭代器都是根据容器本身的特性来进行设计的,充分的考虑到了性能和空间上的问题。对于Vector来讲,它的迭代器在使用的时候完全可以等同于一般的指针。
Size_type capacity()
说明:返回vector当前空间大小,以元素个数为单位。
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
int iSapce = vi.capacity(); //此时iSPace的值应该是4,
void clear()
说明:清空vector中所有元素,但不释放空间
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
iv.clear();
int iSize = iv.size(); //此时iSize = 0
int iSapce = iv.capacity(); //此时iSapce的值应该是4,
bool empty()const
说明:判断vector是否为空。
Example: vector < int > iv;
iv.push_back( 1 );
iv.empty();//结果应该为假
iv.clear();
iv.empty();//结果应该为真
iterator end()
说明:返回指向vector(最后一个元素+1)的迭代器,通常用来判断循环是否结束。
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
//循环整个Vector
for( vector<int>::iterator it = iv.begin(); it != iv.end(); ++it )
{
Do Something….
}
iterator erase( iterator Where )
iterator erase( iterator First, iterator Last )
说明:删除一个位置为“Where”的元素,或者删除从“First”到“Last -1 ”的元素
Example: vector< int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
iv.erase( iv.begin() + 1 ); //删除元素“2”
iv.erase( iv.begin(), iv.begin() + 2 ); //删除元素“1”和“3”
erase的参数Where和First 、Last必须在[ begin(),end() ]范围之内,否则会发生非法访问的错误。
reference front()
说明:返回vector最前面元素的引用,相当于at( FirstPos )。
Example: vector< int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
int i= iv.front(); //此时 i = 1;
iterator insert(iterator Where, const Type & Val )
说明:在“Where”位置插入指定元素“Val”。
Example: vector< int > iv;
iv.push_back( 1 );
iv.push_back( 3 ); //此时Vector中的元素为1,3
iv.insert( iv.begin() + 1, 2 ); //此时Vector中的元素为1,2,3
insert的位置必须在[ begin(),end() ]范围之内,否则会发生非法访问的错误。
void push_back( const Type &Val )
说明:在Vector尾部加入一个元素
void pop_back()
说明:删除Vector尾部的元素
Example:vector< int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );//此时元素为1,2,3
iv.pop_back();//此时元素为1,2
size_type size() const
说明:返回Vector中元素的个数。
reference operator[]( size_type Pos )
说明:[]操作符,使vector可以像数组一样访问
Example:vector< int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
//iv[0] = 1, iv[1] = 2, iv[2] = 3
请注意:
1、operator[]只能用来取得已经存在的元素,而不能向vector中添加元素,例如下面的代码是错误的:
vector< int > iv;
iv[ 0 ] = 1; //错误,vector的空间还没有被分配
2、operator[]和正常数组的使用方法一样,也同样没有越界检查,比如你通过iv[10] 的方式访问一个只有1个元素的vector,不会被提示出错,但这样做可能会有不可预计的事情发生。
构造函数:
vector()
说明:默认构造函数
Example:vector< int > iv;
vector( SizeType count )
说明:构造一个vector,初始元素个数为count,初始值均为0
Example: vector< int > iv(3);
vector( SizeType count, ConstType &Val )
说明:构造一个vector,初始元素个数为count,初始值均为Val
Example: vector< int > iv( 3, 2 );
vector( const _vector& SourceVector )
说明:构造一个Vector,并将SouceVector中的元素完全Copy到构建的Vector中
Example: vector< int > iv1;
vector< int > iv2( iv1 );
其他成员函数:
reference at( size_type Pos )
说明:取得vector在Pos位置的元素的引用,此函数和数组下标用法类似。
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
int i = iv.at(2); //此时i的值应该是3,
reference back()
说明:返回vector最尾部元素的引用,相当于at( LastPos )。
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
int i = iv.back();//此时i的值应该是3,
iterator begin()
说明:返回Vector初始位置的迭代器(iterator)。————〉○2
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
vector<int>::iterator It = iv.begin();
int i = *It; //此时i的值应该是1,
○2在这里顺便简单介绍一下迭代器(iterator)。为了将容器和演算法联系起来,需要一种指向容器中元素的指针,它的使用方法必须类似于原生指针,也就是说我们可以利用*Iter取得元素本身,也可以利用Iter->调用元素的成员函数,甚至我们可能利用Iter++或者Iter--方式来取得元素序列中前一个或者后一个元素(当然某些容器的迭代器不支持这样的操作)。为了更好的封装迭代器的内部实现以及提高性能,每一个容器都有其独立的迭代器,这些特定的迭代器都是根据容器本身的特性来进行设计的,充分的考虑到了性能和空间上的问题。对于Vector来讲,它的迭代器在使用的时候完全可以等同于一般的指针。
Size_type capacity()
说明:返回vector当前空间大小,以元素个数为单位。
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
int iSapce = vi.capacity(); //此时iSPace的值应该是4,
void clear()
说明:清空vector中所有元素,但不释放空间
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
iv.clear();
int iSize = iv.size(); //此时iSize = 0
int iSapce = iv.capacity(); //此时iSapce的值应该是4,
bool empty()const
说明:判断vector是否为空。
Example: vector < int > iv;
iv.push_back( 1 );
iv.empty();//结果应该为假
iv.clear();
iv.empty();//结果应该为真
iterator end()
说明:返回指向vector(最后一个元素+1)的迭代器,通常用来判断循环是否结束。
Example: vector < int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
//循环整个Vector
for( vector<int>::iterator it = iv.begin(); it != iv.end(); ++it )
{
Do Something….
}
iterator erase( iterator Where )
iterator erase( iterator First, iterator Last )
说明:删除一个位置为“Where”的元素,或者删除从“First”到“Last -1 ”的元素
Example: vector< int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
iv.erase( iv.begin() + 1 ); //删除元素“2”
iv.erase( iv.begin(), iv.begin() + 2 ); //删除元素“1”和“3”
erase的参数Where和First 、Last必须在[ begin(),end() ]范围之内,否则会发生非法访问的错误。
reference front()
说明:返回vector最前面元素的引用,相当于at( FirstPos )。
Example: vector< int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
int i= iv.front(); //此时 i = 1;
iterator insert(iterator Where, const Type & Val )
说明:在“Where”位置插入指定元素“Val”。
Example: vector< int > iv;
iv.push_back( 1 );
iv.push_back( 3 ); //此时Vector中的元素为1,3
iv.insert( iv.begin() + 1, 2 ); //此时Vector中的元素为1,2,3
insert的位置必须在[ begin(),end() ]范围之内,否则会发生非法访问的错误。
void push_back( const Type &Val )
说明:在Vector尾部加入一个元素
void pop_back()
说明:删除Vector尾部的元素
Example:vector< int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );//此时元素为1,2,3
iv.pop_back();//此时元素为1,2
size_type size() const
说明:返回Vector中元素的个数。
reference operator[]( size_type Pos )
说明:[]操作符,使vector可以像数组一样访问
Example:vector< int > iv;
iv.push_back( 1 );
iv.push_back( 2 );
iv.push_back( 3 );
//iv[0] = 1, iv[1] = 2, iv[2] = 3
请注意:
1、operator[]只能用来取得已经存在的元素,而不能向vector中添加元素,例如下面的代码是错误的:
vector< int > iv;
iv[ 0 ] = 1; //错误,vector的空间还没有被分配
2、operator[]和正常数组的使用方法一样,也同样没有越界检查,比如你通过iv[10] 的方式访问一个只有1个元素的vector,不会被提示出错,但这样做可能会有不可预计的事情发生。
0 0
- vector
- vector
- Vector
- Vector
- vector
- vector
- VECTOR
- VECTOR
- VECTOR
- vector
- vector
- Vector
- vector
- vector
- vector
- Vector
- vector
- vector
- 你是想读书,还是想读完书?
- map在遍历中删除元素,避免迭代器失效
- Android Activity延迟跳转
- 2014-1-20 NB的BUG
- 被上帝咬过一口的苹果
- vector
- 被上帝咬过一口的苹果
- 2014华为武汉上机试题一:手机电池余量
- 被上帝咬过一口的苹果
- Ubuntu常见应用
- 「忑」sub() //把字符串显示为下标 20140824 ①文本处理
- 被上帝咬过一口的苹果
- Java解压和压缩带密码的zip文件
- 被上帝咬过一口的苹果