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");
}