vector数据存入和输出

时间:2022-10-07 04:17:20

1.vector 的数据的存入和输出:

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

using namespace std;


void main()
{
 int i = 0;
 std::vector<int> vor;
 for(i = 0;i<10;i++)
 {
  vor.push_back(i);    //把元素一个一个存入到vector中
 }
 for(std::vector<int>::iterator m = vor.begin(); m != vor.end(); m++ )    //用迭代器的方式输出容器对象的值
 {
  cout<<*m<<endl;
 }
}

2. 对于二维vector的定义。

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

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

using namespace std;

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

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

 //所以每一行的长度是可以变化的。之所以用到vector<int>(0)是对vector初始化,否则不能对vector存入元素。
 vector< vector<int> > Array( 10 , 0 );//vector<int>(0) );
        /*上面的语句可以声明成下面的:
 vector< vector<int> > Array( 10, 0 ); 表示外层vector不为空,是有内容的;Array( 10, 0 )中,10是指有10个vector<int>;
 0是指内层vector有0个int类型的值;都是初始化数量,和一维的vector不太一样;一维的是第一个值是数量,第二个值是初始值;
        如果 Array( 10 , 0 )中的0写成2,则下面的屏幕输出就多两列,因为push_back()是在原有的值后面又push进去了9个值;
 如果写成Array( 10 ),默认是0,相当于Array( 10 , 0 )。
 如果直接vector< vector<int> > Array;就会报错,因为没有初始化,内层vector就不能赋值了;
 Array[ j ].push_back( i );就是错误的;
        */ 
 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++ )    //这里 i 要声明成unsigned int,因为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;
//下面是不同于1)中定义的二维数组的方法;
vector< vector<int> > Array;   //这里就要注意初始化让外层vector里面有元素;也就是要有vector<int>
vector< int > line;
for( j = 0; j < 10; j++ )
{
   Array.push_back( line );    //要对每一个vector初始化,否则不能存入元素。这里的初始化相当于例子1)的初始化了;
   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;
}
}