c++STL容器特点(C++STL相关)

STL容器具有以下一些特点:

1、容器内的元素可以是基本类型,函数不是基本类型,指向函数的指针是基本类型(像bool char int double pointer可以,reference,function不行)
2、对于关联式容器,排序准则默认的是小于,不是小于等于,调用std::less来判断的
3、自己定义的类是不能直接放到容器里的不能被复制会造成一个玩家有两份实例
4、用容器的好处是复制元素很简单但会导致效率不高,不能在不同的容器里面管理同一份对象。
5、STL的设计原则是效率优先,安全为次的,不进行错误检查。也没有引入异常。

// STL是一个框架,将数据结构和算法进一步抽象。
	// stl 容器的基本知识(常识部分)
	// 容器内元素的条件
	// (1)必须可以复制(copy)或者搬移(move) (隐含的条件是在拷贝和搬移的过程中应该没有副作用)
	
	struct BadStruct {
		BadStruct() : m_id(g_id++) {}
		~BadStruct() { std::cout << "bye\n";}
		// operator =
		int m_id;
		static int g_id;
	};
	// bool char int double pointer
	// reference, function
	// (2) 元素必须可以被赋值操作来复制或者搬移 (因为容器和算法对复写的要求)
	// =
	// (3)元素可以被销毁
	// 针对不同的容器还有特殊的要求
	// 对于序列式容器,元素必须有默认的构造函数
	// 对于某些操作,元素需要定义 == std::find
	// 对于关联式容器,排序准则默认的是 < > std::less
	// 无顺序容器,必须要提供一个hash函数 ==
	// stl容器里面存的是元素的值而不是引用
	// 那么我要问的是,到底我们的容器里面应该存的东西是什么呢?
	// class Player, Monster

	// STL对于错误是怎么处理
	// 我们要记住的是STL的设计原则是效率优先,安全为次
	// 异常?STL自己却不怎么采用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值