C++学习之vector的使用与注意事项

最近编程时经常用到vector向量,但却总是忘记vector的一些函数,特此总结一下。

一,定义一维vector与空间分配

1.vector<int> v(n)   …………定义时分配n个大小的int类型空间。

2.vector<int> v(n,0)………… 定义时分配n个大小的int类型空间,并初始化数值全部为0.

二, 定义二维vector数组,但初始时是一个n维向量。
1.vector<int> v[n]..........与下面的效果一致
2.vector<vector<int>> v(n)…………行数为n,v[i]也是一个vector数组,可以执行v[i].push_back()等基本操作。例如
 vector<int> iVec1[10];
    for (int i = 0; i < 10; ++i)
    {
        for (int j = 0; j < 3; ++j)
        {
            iVec1[i].push_back(j);
        }
    }
    vector<vector<int> > iVec2;
    for (int i = 0; i < 10; ++i)
    {
        vector<int> vecTmp;
        for (int j = 0; j < 3; ++j)
        {
            vecTmp.push_back(j);
        }
        iVec2.push_back(vecTmp);
    }

三,定义二维vector数组,并初始化为二维空间。

1.vector<vector<int>> v(n, vector<int>(m));  //该二维vector数组n行m列。

2.二维vector向量每个元素的长度可以不同,例如

  1. vector<vector<int> >vv;  
  2. for(int c = 1; c <= 3; c++)  
  3.     vv.push_back(vector<int>(c,0));  

上面代码产生一个长度不同的二维向量,第一行只有1个元素,第二行有两个,第三行三个。

四,寻找最大最小值

    在vector,string等容器中寻找最值使用函数max_element()函数和min_element()函数,返回最值的迭代器。

#include<iostream>
#include<string>
#include<algorithm>    //max_element(min_element)函数头文件
using namespace std;
int main()  
{  
   string s="aacfg";
	cout<<*max_element(s.begin(),s.end())<<endl;
	cout<<*min_element(s.begin(),s.end())<<endl;
   return 0;  
} 
//输出:
//g
//a

六,其他函数

空间再分配函数v.resize();

vector<int> v;    
v.resize(n);  //预分配n个大小的int型空间
vector<int> vi[n];
vi[i].resize(10);  //对vi[i]预分配n个大小的int型空间


猜你喜欢

转载自blog.csdn.net/vir_lee/article/details/80501951