c++:类模板、STL(1)

/* 定义类模板:
	template<class <类型参数>>
		class<类名>{
		 .........
		};

首先定义一个类模板,通过使用不同的实参生成不同的类:
类模板的使用方法:
	类模板名<数据类型>对象名;

具体见收藏
*/

/*STL(Standard Template Libary):标准模板库,主要包括了容器、算法、迭代器

1、容器:容纳相同元素的对象,主要由类模板实现
顺序容器:容器中的元素由线性结构组织起来,可以逐个读写元素。包括vector(向量),deque(双端队列),list(双向链表)
关联型容器:通过键(key)来存储,读取元素。主要有map(映射),set(集合)   //(python字典?)
容器适配器:对容器再包装,使其变成另一种容器。stack(栈),队列(queue)

2、迭代器:用于确定元素位置的数据类型,用来遍历容器中的所有元素,它的用法与指针类似(指针就是一种迭代器)
每一种容器都定义了一种迭代器:
格式为:
		容器类型名<元素类型>::iterator 迭代器变量名
	如:vector<int>::iterator it;
访问一个迭代器所指向的元素:
		*迭代器变量名
    如:*it=5;

3、算法:即很多函数模板的集合,提供了大量算法,用于操作各种容器。包括了比较、排序、修改、复制等等
算法通过迭代器操作容器中的元素
*/
//vector实际上是对动态数组的封装,与数组一样,vector对象的空间随着插入删除自动调整

#include<iostream>
#include<vector>
using namespace std;
int main() {
	/*
	vector<int>v1; //创建一个空向量
	vector<string>s1;//创建一个空向量
	vector<int>v2(v1);//将v1的内容复制到v2
	vector<string>s2(15);//创建15个元素的向量
	vector<double>v3(15, 3);//创建15个元素的向量,所有元素都是3
	vector<int>* p = new vector<int>(15, 3);//创建向量指针

	push_back()函数向vector尾部添加元素
	insert()向vector中插入元素
	*/
	vector<int>a1;
	a1.push_back(1);//插入元素1
	a1.push_back(2);
	a1.insert(a1.begin(), 0);//头部插入。a1.begin()是个迭代器
	a1.insert(a1.end(), 4);//尾部插入。a1.end()是个迭代器
	a1.insert(a1.end() - 1, 3);//倒数第二个位置 
	//0 1 2 3 4
	//遍历
	a1[4] = 10; //0 1 2 3 10
	for (int i = 0; i < a1.size(); i++) { //a1.size()为5
		cout << a1[i] << endl;
	}

	//删除元素
	a1.pop_back();//删除尾部
	a1.erase(a1.begin());//删除头部
	a1.erase(a1.begin(), a1.end());//全删
	a1.clear();//全删

	//此外,还有一些向量大小相关的函数
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值