vector的使用


标准库类型的vector表示对象的集合,其中,所有的对象都有相同类型;(就是动态数组,扯那多呢?)

//必须包含的头文件:
#include<vector>
using namespace std;

1、定义与初始化对象

vector<string> s;//默认初始化,s中不包含任何元素;
//事实上,最常见的方式是先定义一个空的vector;
//然后当运行的时候获取到元素值就添加进去

vector<int>p;
//往里面添加一些值
vector<int> p1(p);
//把p的值复制给p1;
vector<int>p2=p;

2、列表初始化

vector<string> svec={"The","three","kingdoms"};
//使用‘=’进行列表初始化
//也可以将初始值都放在花括号里进行列表初始化
vector<string> v{"The","three","kingdoms"};

3、创建制定数量的元素

vector<int> v(10,-1);
//10个int元素,每个都初始化成-1;
vector<int> v(10);
//10个int元素,每个初始化为0(编译器默认初始值,一般为0);
vector<string> v(10"hello");
//10个int元素,每个初始化为hello;
vector<string> v(10);
//10个string元素,每个都为空的string对象

4、创建二维数组

vector<vector<int>> arr(2,vector<int>(5));
//创建2行5列的二维数组,初值为0;

5、向vector中添加元素

push_back()负责把一个值当成vector对象的尾元素“push”到vector对象的“尾端back‘

vector<double>  d;
double temp;
for(int i=1;i<=100;i++)
temp=i*i;
d.push_back(temp);

从标准库读取单词,存入vector中

string word;
vector<string> text;
while(cin>>word)
text.push_back(word);

6、vector的基本操作

v.empty();//检查是否为空
v.capacity();//返回当前vector中最大可以存储的数据容量
v.size();//返回v中元素的个数
v[n];//获取v中第n个元素;

7、使用迭代器

begin()成员负责返回指向第一个元素(或第一个字符)的迭代器;
end();成员负责返回指向容器(或string对象)的尾元素的下一个位置的迭代器。

8、例题

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<vector>
#define max 100001
using namespace std;

int main()
{
	int m,n;
	vector<vector<int> > array;
	vector<int> v;
	cin>>m>>n;
	int a[max];
	
	int t=0;
    for(int i=0;i<m;i++)
    {
    	v.clear();
    	for(int j=0;j<n;j++)
    	{
    		cin>>t;
    		v.push_back(t);
		}
		array.push_back(v);
	}
	int q,k1,k2,k;
	cin>>q;
	for(k=0;k<q;k++)
	{
		cin>>k1>>k2;
	    a[k]=array[k1-1][k2-1];//注意不是array[k1][k2]
	}
	
		for(int p=0;p<q;p++)
	{
		cout<<a[p];
		cout<<endl;
	}

    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值