2020.11.16 第10课 STL容器篇

这是一篇关于C++ STL容器的教程,涵盖了从基本的vector动态数组,到list的双向链表,再到stack、queue、set和map等容器的介绍和应用。
摘要由CSDN通过智能技术生成

2020.11.16 第10课 STL容器篇

一、STL简单描述

-----------------------------
	标准模板库 泛型编程库 standard template library
	algorithm算法 container容器 iterator迭代器
	使用容器创建对象
	#include <vector>   //向量--->动态数组 不受内存限定
-----------------------------

二、vector 向量—>动态数组


#include <vector>   //向量--->动态数组 不受内存限定
#include <iostream>
using namespace std;
class MM
{
   
public:
	MM(){
   }
	MM(string name,int age):name(name),age(age){
   }
	friend ostream& operator<<(ostream& out, MM object)
	{
   
		out << object.name << "\t" << object.age;
		return out;
	}
protected:
	string name;
	int age;
}; 

void print(vector<int>& array)	//修改值可以传引用//容器相当于一个变量,可以充当函数参数
{
   
	for (int i = 0; i < array.size(); i++)		//所有容器都有万金油
	{
   
		cout << array[i] << "\t";
	}
}

class A
{
   
public:
protected:
};
class B
{
   
public:
	vector<A> object;			//数组变量  函数参数,类中数据成员
};

int main()
{
   	
	//1.加上vector头文件
	//2.学会创建对象	   主要
	vector<int>intArratEmpty;	//无参的构造函数,默认缺省
	//3.没确定长度,只能通过成员函数去操作
	for (int i = 0; i < 3; i++)
	{
   
		//尾插法
		intArratEmpty.push_back(i);    //模板类创建对象 调用成员函数
	}
	//4.直接使用数组的方式遍历动态数组
	for (int i = 0; i < 3; i++)
	{
   
		cout << intArratEmpty[i] << "\t";
	}
	cout << endl;
	//5.在确定长度的情况下,可以直接使用下标法使用
	vector<string>strArray(3);		//带参的构造函数
	for (int i = 0; i < 3; i++)
	{
   
		strArray[i] = "str";
	}
	//6.超过的长度不能直接使用下标法
	//strArray[3]="love"; out of range
	strArray.push_back("love");		//strArray[3]
	cout << endl;
	for (int i = 0; i < 4; i++)
	{
   
		cout << strArray[i] << "\t";
	}
	cout << endl;
	//7.操作自定义类型
	//放一个MM类型进去  mm[i] 就是MM类型 不能直接打印 剥洋葱 运算符重载
	vector<MM> mm(3);		
	mm[0] = MM("张三", 15);
	mm[1] = MM("baby", 15);
	mm.push_back(MM("yykk", 18));
	mm.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值