C++ vector使用范例 ----转 (foreverhehe716自己再加点)

本文介绍了C++中vector容器的基本操作,包括一维和二维vector的定义与使用、元素的插入与删除、从文件中读取数据填充vector等实用案例。

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

C++中的vector使用范例 ----转 
1.vector 的数据的存入和输出:

#include<stdio.h>
#include<vector>
#include <iostream>

using namespace std;

void main()

{

   int i = 0;

    vector<int> v;

    for( i = 0; i < 10; i++ )

   {

             v.push_back( i );//把元素一个一个存入到vector中

   }

    /* v.clear()*/ 对存入的数据清空


   for( i = 0; i < v.size(); i++ )//v.size() 表示vector存入元素的个数

   {

          cout << v[ i ] << "  "; //把每个元素显示出来

   }

   cont << endl;

}

注:你也可以用v.begin()和v.end() 来得到vector开始的和结束的元素地址的指针位置。你也可以

这样做:

vector<int>::iterator iter; /*iterator 抽象了指针的绝大部分基本特征*/


for( iter = v.begin(); iter != v.end(); iter++ )

{
    cout << *iter << endl;
}

2. 对于二维vector的定义。

1)定义一个10个vector元素,并对每个vector符值1-10。

#include<stdio.h>
#include<vector>
#include <iostream>

using namespace std;

void main()
{
 int i = 0, j = 0;

//定义一个二维的动态数组,有10行,每一行是一个用一个vector存储这一行的数据。

所以每一行的长度是可以变化的。之所以用到vector<int>(0)是对vector初始化,否则不能对

vector存入元素。
 vector< vector<int> > Array( 10, vector<int>(0) );

for( j = 0; j < 10; j++ )
 {
  for ( i = 0; i < 9; i++ )
  {
   Array[ j ].push_back( i );
  }
 }

 for( j = 0; j < 10; j++ )
 {
  for( i = 0; i < Array[ j ].size(); i++ )
  {
   cout << Array[ j ][ i ] << "  ";
  }
  cout<< endl;
 }
}

2)定义一个行列都是变化的数组。

#include<stdio.h>
#include<vector>
#include <iostream>

using namespace std;

void main()
{
 int i = 0, j = 0;

 vector< vector<int> > Array;
 vector< int > line;
 for( j = 0; j < 10; j++ )
 {
  Array.push_back( line );//要对每一个vector初始化,否则不能存入元素。
  for ( i = 0; i < 9; i++ )
  {
   Array[ j ].push_back( i );
  }
 }

 for( j = 0; j < 10; j++ )
 {
  for( i = 0; i < Array[ j ].size(); i++ )
  {
   cout << Array[ j ][ i ] << "  ";
  }
  cout<< endl;
 }
}

 


使用 vettor erase 指定元素


#include "iostream"
#include "vector"

using namespace std;

int   main()
{
    vector<int>   arr;
    arr.push_back(6);
    arr.push_back(8);
    arr.push_back(3);
    arr.push_back(8);

    for(vector<int>::iterator it=arr.begin(); it!=arr.end(); )
    {
        if(* it == 8)
        {
            it = arr.erase(it);
        }
        else
        {
            ++it;
        }
    }

    cout << "After remove 8:/n";

    for(vector<int>::iterator it = arr.begin(); it < arr.end(); ++it)
    {
        cout << * it << " ";
    }
    cout << endl;

}
 
 从txt文件中把一堆数据读入一个256*2的二维vector中。(data1.txt 中的数据为256个点的二维坐标:x1 y1 x2 y2 ...

 int _tmain(int argc, char** argv )
{
     vector< vector<double> > ivec(256, vector<double>(0));

     cout<<"请输入要读取的文件名:"<<endl;
     string fileName;
     cin>>fileName;
     ifstream inFile(fileName.c_str());
     if(!inFile)
     {
           cout<<"文件读取错误!"<<endl;
           return -1;
      }
     double i;
     while(inFile)
     {
           for(int j=0;j<256;j++)
           {
                 for(int k=0;k<2;k++)
                {
                      inFile>>i;
                      ivec[j].push_back(i);
                }
           }
     }
     inFile.close();
     cout<<"数据读取结果:"<<endl;

     for(int j=0;j<256;j++)
     {
          for(int i=0;i<2;i++)
          {
              cout<<ivec[j][i]<<" ";
           }
      }
      cout<<"ok!"<<endl;
      return 0;



 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值