c++ vector简单使用

最近写pta 上的题目,由于只会c,很多东西还要手打,很慢。
于是开始学习c++的STL一些常见简单的操作。新手友好,高手劝退。

  • vector:不定长数组
  • 头文件#include<vecotor>
  • 定义:vector<int >op这样相当于一维数组
  • vector<int>op[200]相当与二维数组,不过第一维的大小是固定的200
  • 此外vector<string>类似于string a[ ]的字符串数组。

一些常见操作

1.push_back() 向尾部添加元素
2.pop_back() 删除尾部元素
3.size() 返回数组大小(多少个元素)
4.clear()清空数组
5.empty() 判断为空,若为空,返回true
6.front() 返回第一个元素
7.back()返回最后一个元素
8. begin() 返回指向第一个元素的迭代器(用法,比如sort( op.begin(),op.end(),cmp);

常识理解:
1.输入篇:

  • C语言数组 int op[50],可以直接op[0]=值。
  • vector要push_back才行
    比如,这样是不对的
	vector<int >ve[50];
	int n=41;
	ve[0][0]=n;
	printf("%d\n",n);
	printf("%d",ve[0][0]); 

如果先pushback,在用下标进行初始化赋值,这样可以输出,就相当于二维数组了。而vector的优势根据元素动态申请内存荡然无存。
如果再用push_back的话,用下标初始赋值的值就会消失。但是当用pushback赋值后,是可以通过下标来修改元素的值。

	vector<int >ve[50];
	int n=41;
	ve[0].push_back(n);
	ve[0][2]=6;
	ve[0].push_back(3);
	printf("%d\n",n);
	printf("%d",ve[0][1]); //输出的会是3,而6在原位置也找不到了

2.赋值篇

vector< int > ivec( 7 ,9);

数组开了7个空间,元素全部置为9

#include<vector>
#include<stdio.h>
using namespace std;
int main(void)
{
	vector<int >ve(7,9);
	for(int i=0;i<=6;i++)
		printf("%d\n",ve[i]); 
} 

或者可用一个数组对vector型的进行赋值
int op[5]={-1,2,3,4,5};
vector< int >ve(op,op+2);第一个参数是起始位置,第二个是结束位置的下一位指针。(同sort),此时ve[0]=-1,ve[1]=2;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值