C++ <vector>入门(1)

本文详细介绍了C++标准库中的vector容器使用方法,包括构造函数、常用成员函数如assign、at、back、begin、capacity和clear等,并通过实例展示了如何创建、操作及遍历vector。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.语法:

#include <vector>
  vector();   默认构造函数
  vector( const vector& c );   从一个已知的vector对象复制到新vector对象中
  vector( size_type num, const TYPE& val = TYPE() );   有num个元素,如果有val,则每个元素的值都是val
  vector( input_iterator start, input_iterator end );   被初始化为start到end的元素   
  ~vector();   析钩函数

例子:
// create a vector of random integers   创建一个包含随机数的vector对象
 cout << "original vector: ";
 vector<int> v;
 for( int i = 0; i < 10; i++ ) {
   int num = (int) rand() % 10;
   cout << num << " ";
   v.push_back( num );
 }
 cout << endl;            

 // find the first element of v that is even   找到vector对象中的第一个元素
 vector<int>::iterator iter1 = v.begin();
 while( iter1 != v.end() && *iter1 % 2 != 0 ) {
   iter1++;
 }              

 // find the last element of v that is even   找到最后一个元素
 vector<int>::iterator iter2 = v.end();
 do {
   iter2--;
 } while( iter2 != v.begin() && *iter2 % 2 != 0 );              

 // only proceed if we find both numbers   找到初始和结束的元素
 if( iter1 != v.end() && iter2 != v.begin() ) {
   cout << "first even number: " << *iter1 << ", last even number: " << *iter2 << endl;        

   cout << "new vector: ";
   vector<int> v2( iter1, iter2 );
   for( int i = 0; i < v2.size(); i++ ) {
     cout << v2[i] << " ";
   }
   cout << endl;
 }
结果:
original vector: 1 9 7 9 2 7 2 1 9 8
 first even number: 2, last even number: 8
 new vector: 2 7 2 1 9    

二:方法

1.assign
#include <vector>
void assign( size_type num, const TYPE& val );
void assign( input_iterator start, input_iterator end );
例子:
vector<int> v;
 v.assign( 10, 42 ); 构造函数1
 for( int i = 0; i < v.size(); i++ ) {
   cout << v[i] << " ";
 }
 cout << endl;            
结果:42 42 42 42 42 42 42 42 42 42
vector<int> v1;
 for( int i = 0; i < 10; i++ ) {
   v1.push_back( i );
 }              

 vector<int> v2;
 v2.assign( v1.begin(), v1.end() );   构造函数2         

 for( int i = 0; i < v2.size(); i++ ) {
   cout << v2[i] << " ";
 }
 cout << endl;            
结果:0 1 2 3 4 5 6 7 8 9

2.at
#include <vector>
TYPE& at( size_type loc );
const TYPE& at( size_type loc ) const;
例子:
vector<int> v( 5, 1 );
 for( int i = 0; i < 10; i++ ) {
   cout << "Element " << i << " is " << v[i] << endl;
 }  

下面的安全些:
vector<int> v( 5, 1 );
 for( int i = 0; i < 10; i++ ) {
   cout << "Element " << i << " is " << v.at(i) << endl;
 }
   
3.back
#include <vector>
TYPE& back();
const TYPE& back() const;

例子:
vector<int> v;
 for( int i = 0; i < 5; i++ ) {
   v.push_back(i);
 }
 cout << "The first element is " << v.front()
      << " and the last element is " << v.back() << endl;    
结果:
The first element is 0 and the last element is 4    


4.begin
#include <vector>
iterator begin();
const_iterator begin() const;
例子:
vector<string> words;
  string str;
 
  while( cin >> str ) words.push_back(str);

  vector<string>::iterator iter;
  for( iter = words.begin(); iter != words.end(); iter++ ) {
    cout << *iter << endl;
  }
结果:
输入:hey mickey you're so fine

输出:hey
  mickey
  you're
  so
  fine
5.capacity
#include <vector>
size_type capacity() const;
例子:
vector<int> v1(10);
 cout << "The capacity of v1 is " << v1.capacity() << endl;
 vector<int> v2;
 v2.reserve(20);
 cout << "The capacity of v2 is " << v2.capacity() << endl;        
结果:
The capacity of v1 is 10
 The capacity of v2 is 20  
6.clear
#include <vector>
void clear();
清空所有元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值