stl之容器结构与分类

一、分类

  • 序列型容器
    在这里插入图片描述

  • 关联型容器

在这里插入图片描述

  1. 不定序容器

在这里插入图片描述
二、结构

  1. 序列型容器
  • array 容器大小固定
  • vector 容器大小可以扩充,只能从后端开始扩充
  • queue 容器大小可以扩充,前端和后端都可以扩充
  • List 容器是双向链表
  • Forward List 容器是单向链表
  1. 关联型容器:通常情况下用红黑树来表示其结构,适用场景为需要多次查找的情况,通过key来寻找value值。

(1)set和map区别:set每一个节点只有一个区域,key值既是value值,map每一个节点有两个区域,为key和value,key值和value值不一定相等;set中每一个节点的key值也就是其对应的value值,map每一个节点的key值和value值不要求值相等
(2)none-和multi-区别:multi-前缀表示该关联容器的key值可以重复,没有该前缀时会要求key值不能重复。

三、示例代码

#include <array>
#include <iostream>
#include <ctime>
#include <cstdio>
using namespace std;
namespace ll {
	void testArray()
	{	/*void testArray{*/
		cout << "》》》》》test_array》》》》" << endl;

		array<int, 50000> c; 
		  
		clock_t timeStart = clock();

		for (int i = 0; i < 50000; i++) {
			c[i] = rand();
		}

		cout << "c的大小:" << c.size() << endl;
		cout << "c.begin:" << c.front() << endl; //注意front()和begin()的区别,一个是返回迭代器,不能赋给ostream流,一个返回容器最后一个元素的引用
		cout << "c.end:" << c.back() << endl;
		cout << "耗费的时间为:" << clock() - timeStart << "ms" << endl;
	 }
}

输出结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值