当前位置:   article > 正文

c++STL容器特点(C++STL相关)_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自己却不怎么采用。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/941449
推荐阅读
相关标签
  

闽ICP备14008679号