关于动态数组和向量容器

2018/3/8

1.动态数组

1.在以前的学习中,对于数据的存储,总是使用数组(静态)的方式,但是,使用数组可能有不便的地方,数组可能有会越界的情况,所以引入了动态数组的方式

2.动态数组实际上是通过对指针的操作,把一个指针当做一个数组来处理

int *x = new int[size];//建立动态数组,使用new语句来分配内存

3.使用完注意对数组指针的删除

/*注意删除*/
	*x = NULL;
	delete []x;
/*使用动态数组*/
/*动态数组就是将指针当做数组来使用*/
#include<iostream>
#include<stdlib.h>
using namespace std;//使用全局变量
void main()
{
	int size;//定义数组的尺寸
	cout << "请输入数组的尺寸" << endl;
	cin >> size;
	int *x = new int[size];//建立动态数组,使用new语句来分配内存
	cout << "\n开始写入数字\n";
	for (int i = 0; i < size; i++)
	{
		cin>> x[i];//输入数字
	}
	cout << "\n输出数字\n";
	for (int i = 0; i < size; i++)
	{
		cout<<" "<<x[i];//输入数字
	}
	/*注意删除*/
	*x = NULL;
	delete []x;
	system("pause");
	



}

2.vector(向量)

1.vector作为一个容器,操作便利,容易使用

2.遍历vector时,可以使用每一个容器都有的迭代器inhertor,通过对这个智能指针的操作,对容器进行遍历

3.对数组进行赋值的时候,可以借助于数组

#include"vector.h"
void main()
{
	int i;
	/*使用数组的方式对容器进行初始化和使用*/
	int a[7] = { 1,2,3,5,4,6,7 };
	std::vector<int>number(a, a + 7);//使用数组来实现vector的初始化(begin,end)
	/*定义迭代器*/
	std::vector<int>::iterator iter;
	for (iter = number.begin(); iter != number.end(); iter++)
	{
		std::cout << " " << *iter;
	}
	/*进行排序*/
	std::cout << "\n进行排序啦\n" << std::endl;
	std::sort(number.begin(), number.end());//algorithm
	iter = number.begin();//给迭代器附初始值
	while (iter != number.end())
	{
		std::cout << *iter;
		++iter;
	}
	std::cout << "\n给容器重新赋值\n";
	number[0] = 0;//给容器重新赋值
	iter = number.begin();
	while (iter != number.end())
	{
		std::cout << *iter;
		++iter;
	}
	system("pause");

	
	

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值