数组
一种数据格式,能够储存多个同类型的值
typeName arrayName[arraySize]
初始化
int card[4]={3,6,8,10};
int hand[4];
for(i=0;i<4;i++){
hand[i]=i;
}
float hotelTips[5]={5.0,2.5};
//初始化提供的值可以少于元素数目
数组名称:
- 可以统计整个数组在内存中的长度
sizeof(hand)/sizeog(hand[0]);
- 可以获取数组在内存中的首地址
二维数组
typeName arrayName[row][column];
typeName arrayName[row][column]={{data1,data2},{data3,data4}};
typeName arrayName[row][column]={data1,data2,data3,data4};
typeName arrayName[][column]={data1,data2,data3,data4};
数组的替代品
模板类vector
单端数组,可以动态扩展
创建vector容器
vector<typeName> vt(num);//储存num个类型为typeName的元素
四种赋值操作
//赋值操作
vector<int> v1;
for (int i = 0; i < 10; i++)
{
v1.push_back(i);
}
vector<int>v2;
v2 = v1;
vector<int>v3;
v3.assign(v1.begin(), v1.end());
vector<int>v4;
v4.assign(10, 100);
相关功能
empty();//判断容器是否为空
capacity();//容器的容量
size();//返回容器中元素的个数
resize(int num);
//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。
//如果容器变短,则末尾超出容器长度的元素被删除。
resize(int num, elem);
//重新指定容器的长度为num,若容器变长,则以elem值填充新位置。
//如果容器变短,则末尾超出容器长度的元素被删除
插入与删除
push_back(ele);//尾部插入元素ele
pop_back();//删除最后一个元素
insert(const_iterator pos, ele);//迭代器指向位置pos插入元素ele
insert(const_iterator pos, int count,ele);
//迭代器指向位置pos插入count个元素ele
erase(const_iterator pos);//删除迭代器指向的元素
erase(const_iterator start, const_iterator end);
//删除迭代器从start到end之间的元素
clear();//删除容器中所有元素
//迭代器类似于指针,用来访问容器中的元素
vector<int>::iterator i;//迭代器定义
模板类array
如果需要长度固定的数组,使用array,使用栈静态分配内存。
要创建array对象
#include <array>
array<int,5>ai={1, 2, 3, 4, 5};