容器

STL源码剖析——容器

南笙酒味 提交于 2020-03-12 07:31:32
文章目录 一.模板特化 二.设计容器必须定义的型别 三.deque 四.心心念念的优先队列 五.hashtable的构造 一.模板特化 针对任何模板参数更进一步的条件限制所设计出来的一个特化版本,如: template < typename T > class C { . . . } ; //泛化版本,可以接受T为任何型别 template < typename T > class C < T * > { . . . } ; //特化版本,仅适合于T为原生指针时的情况 二.设计容器必须定义的型别 value_type difference_type reference_type pointer_type iterator_category: 其中设计实现了只读/只写迭代器,允许写入型,可双向移动,随机访问迭代器这5类 总结 traits编程技法(特性萃取)大量的实现大大提高了STL设计的便利性。需要注意设计正确的型别是迭代器的职责,而设计正确的迭代器则属于容器的职责。 三.deque deque与vector的差别 deque除了可以像vector那样在尾部以O(1)的时间复杂度完成插入和删除之外,还可以实现在头部以O(1)的代价插入元素 deque没有所谓的容量的概念,这个和它底层的空间组织形式有关,所以不提供reserve成员函数来限定容量

Castle 开发系列文章

陌路散爱 提交于 2020-03-12 07:00:49
转自:http://terrylee.cnblogs.com/archive/2006/04/28/castl_ioc_article.html Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。4月份以来,Terrylee写了一系列的Castle的文章,这里做一下总结,后续还有Facility系列等,本部分内容会不断的更新。 第一部分:ActiveRecord学习实践系列 1. Castle ActiveRecord学习实践(1):快速入门指南 2. Castle ActiveRecord学习实践(2):构建配置信息 3. Castle ActiveRecord学习实践(3):映射基础 4. Castle ActiveRecord学习实践(4):实现One-Many关系的映射 5. Castle ActiveRecord学习实践(5):实现Many–Many关系的映射 6. Castle ActiveRecord学习实践(6):延迟加载和使用Where子句 7. Castle ActiveRecord学习实践(7):使用HQL查询 8. Castle ActiveRecord学习实践(8):数据有效性的验证 9. Castle

Castle 开发系列文章

杀马特。学长 韩版系。学妹 提交于 2020-03-12 06:55:55
Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。4月份以来,Terrylee写了一系列的Castle的文章,这里做一下总结,后续还有Facility系列等,本部分内容会不断的更新。 第一部分:ActiveRecord学习实践系列 1. Castle ActiveRecord学习实践(1):快速入门指南 2. Castle ActiveRecord学习实践(2):构建配置信息 3. Castle ActiveRecord学习实践(3):映射基础 4. Castle ActiveRecord学习实践(4):实现One-Many关系的映射 5. Castle ActiveRecord学习实践(5):实现Many–Many关系的映射 6. Castle ActiveRecord学习实践(6):延迟加载和使用Where子句 7. Castle ActiveRecord学习实践(7):使用HQL查询 8. Castle ActiveRecord学习实践(8):数据有效性的验证 9. Castle ActiveRecord学习实践(9):使用ActiveRecord的一些技巧 10. Castle ActiveRecord学习实践(10)

SVG 2D入门10 - 滤镜

故事扮演 提交于 2020-03-12 04:51:21
滤镜称得上是SVG最强大的功能了,它允许你给图形(图形元素和容器元素)添加各种专业软件中才有的滤镜特效。这样你就很容易在客户端生成和修改图像了。而且滤镜并没有破坏原有文档的结构,所以维护性也很好。 滤镜用filter元素定义;需要使用的时候,在需要滤镜效果的图形或容器上添加filter属性,引用相关滤镜即可。 滤镜元素包含很多的滤镜原子操作;每个原子操作在传入的对象上执行一个基本的图形操作,并产生图形输出。大多数的原子操作生成的结果基本都是一个RGBA图片。每个原子操作的输入既可以是源图形,也可以使其他原子操作的结果。所以引用滤镜效果的过程就是在源图形上应用相关的滤镜原子操作,最后生成一个新的图形并渲染。 当在容器上(例如g元素)使用filter属性的时候,滤镜效果会应用到容器中的所有元素。但是容器中的元素并不会直接渲染到屏幕,而是会被暂时存储起来。然后,图形命令会被当做处理引用的filter元素的过程的一部分被执行,这个时候才会去渲染。这是通过使用SourceGraphic和SourceAlpha来指定的。下面的第二个例子中的第三种情况会演示这种效果。 有些滤镜效果会生成一些没有定义的像素点,这些点会被处理成透明效果。 先来看一个例子: <svg width="7.5cm" height="5cm" viewBox="0 0 200 120" xmlns="http://www

C++ map 和 multimap 容器

与世无争的帅哥 提交于 2020-03-11 18:21:51
map/multimap的简介 map是标准的关联式容器,一个map里存储的元素是一个键值对序列,叫做(key,value)键值对。它提供基于key快速检索数据的能力。 map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 map底层的具体实现是采用红黑树变体的平衡二叉树的数据结构。在插入操作、删除和检索操作上比vector快很多。 map可以直接存取key所对应的value,支持[]操作符,如map[key]=value。 使用时必须包含头文件 #include <map> multimap与map的区别: map支持唯一键值,每个键只能出现一次;而multimap中相同键可以出现多次。multimap不支持[]操作符。 map/multimap容器 和 set/multiset容器都是差不多的,只是map/mulitmap比他们多了一个键值! 如果不懂set/multiset容器的可以点下面链接: https://blog.csdn.net/cpp_learner/article/details/104751672 当然,map/multimap容器也有 仿函数 ,因为在之前的文章中,已经详细讲过了,所以这里就不在讲了,如果不懂的可以点下面链接去学习: https://blog.csdn.net/cpp_learner

从零开始入门 K8s | Kubernetes 网络模型进阶

空扰寡人 提交于 2020-03-11 14:42:31
导读 :本文将基于之前介绍的 基本网络模型 ,进行更深入的一些了解,希望给予读者一个更广更深的认知。首先简单回顾一下容器网络的历史沿革,剖析一下 Kubernetes 网络模型的由来;其次会剖析一个实际的实现(Flannel Hostgw),展现了数据包从容器到宿主机的变换过程;最后对于和网络息息相关的 Servcie 做了比较深入的机制和使用介绍,通过一个简单的例子说明了 Service 的工作原理。 Kubernetes 网络模型来龙去脉 容器网络发端于 Docker 的网络。Docker 使用了一个比较简单的网络模型,即内部的网桥加内部的保留 IP。这种设计的好处在于容器的网络和外部世界是解耦的,无需占用宿主机的 IP 或者宿主机的资源,完全是虚拟的。它的设计初衷是:当需要访问外部世界时,会采用 SNAT 这种方法来借用 Node 的 IP 去访问外面的服务。比如容器需要对外提供服务的时候,所用的是 DNAT 技术,也就是在 Node 上开一个端口,然后通过 iptable 或者别的某些机制,把流导入到容器的进程上以达到目的。 该模型的问题在于,外部网络无法区分哪些是容器的网络与流量、哪些是宿主机的网络与流量。比如,如果要做一个高可用的时候,172.16.1.1 和 172.16.1.2 是拥有同样功能的两个容器,此时我们需要将两者绑成一个 Group 对外提供服务

Silverlight 控件中显示图像 Image.Source 属性 需要注意的地方

[亡魂溺海] 提交于 2020-03-11 13:32:40
在Silverlight 中,image 控件可以用来显示图像。用法和前面的相似。使用Image 控 件的语法如下: View Code <Grid x:Name="Layout" Width="250" Height="250" Background="GREEN" ><Image x:Name="MyImage" Source="/AppleTree.png" Stretch="Uniform" ></Image></Grid> Image.Source 属性 Source 属性用于指定图片的位置。 View Code <Image x:Name="blue" Source="/images/DingosLogo.png" Stretch="None"/><Image x:Name="green" Source="images/DingosLogo.png" Stretch="None" /> 注意: 1、以反斜杠开头的图片(Source="/images/DingosLogo.png")需要放在ClientBin 目录下的相应文件夹中 2、不以反斜杠开头的图片(Source="images/DingosLogo.png")应该放在 Silverlight 项目的目录下的相应文件夹里。 3、反斜杠开头的相对路径,代表的相对位置是应用程序运行的根目录,即.xap 压缩包内,若

使用ivx的可滑动容器制作消息列表的一些经验总结

浪尽此生 提交于 2020-03-11 12:28:15
最近在学习ivx的过程中,发现在拓展组件中有一个可滑动容器组件。在制作一些案例的消息列表时,是经常需要使用这种展示效果的,例如消息列表左滑即可选择删除或者置顶等经常使用的功能,而平常按钮又是隐藏起来的,不会挤占UI的展示区域非常便捷。ivx中将这个功能单独封装成一个功能组件,这里为ivx模块细分工作点个赞!这里也把我对这个功能模块的使用心得写下来 希望能对大家有所帮助。 1.添加可滑动容器 在下图位置中可以找到可滑动容器,添加之后可以先看一下可滑动容器的结构,对象树中除了会出现一个可滑动容器,它的下面还会出现一个可滑动按钮组和一个可滑动行。此时选中可滑动容器再去点击拓展组件,只能添加可滑动按钮组,而且鼠标右键可滑动按钮组和可滑动行你会发现,可滑动按钮组是可以删除的,而可滑动行是不行的,毕竟它是整个可滑动容器的主要展示部分。 2.展示部分的主体-可滑动行 在ivx这个demo里面,是选中可滑动行添加了一个行容器,行容器中又添加三个列容器,分别展示头像,昵称消息内容和消息日期。可滑动行名字中是带着行的,而且也确实可以把它当成一个行组件看待。在内部添加组件是横向排列的,不过并不能像行组件一样设置换行以及剪切,而且他的宽高也是由父容器可滑动容器的宽高决定的。 3.滑动后展示的区域-可滑动按钮组 可滑动按钮组也是采用行排列,我们在编辑器里将可滑动行滑走就可以设置它里面的展示效果了

使用ivx的for组件进行循环创建实现排行榜的经验总结

风格不统一 提交于 2020-03-11 12:26:08
之前在可滑动容器那篇文章的结尾里提到了for循环创建组件,今天就正好详细说一说ivx中for容器来实现循环创建。在实际案例中我们其实是经常需要用到这个功能的,因为他可以把结构一致的组件集合复制创建多份而不是真的去一个一个制作出来,可以节省很多时间。以这个排行榜的demo举例,我们可以看出每位玩家的得分卡片结构是一致的,信息类型也都是头像图片,玩家昵称和得分这三项,只是内容不同。现在就来详细说一下这是如何实现的。 2.1.数据库与用户 数据库现在是已经添加好了了三个字段 分值,头像和昵称,并且也已经填入了一些数据,这是前台的对象数组排行榜的数据来源。数据库设置了将每人提交次数限制为1。用户组件则是前台初始化用于微信登录并获取我们的头像昵称和openID,取的这样一个身份后才能生成分数同时也能用于区分不同玩家。 3.2.测试页页面 get your rank按钮的作用是跳转页面,get your score则是随机获取得分并提交到数据库。提交的结果成功了则显示得分。失败则提示用户已经提交过了并直接跳转排行榜页面。 4.3.排行榜页面 简单看一下布局,页面分为两部分,上面是一个文本组件作为标题,下面是一个列容器,就是在这个列容器中我们添加了for循环创建,而循环创建的内容就是这个绝对定位容器和他里面分别展示头像昵称分值的两个文本组件,一个图片组件。 5.4.for循环创建的数据来源

ExtJS布局-Layout

拟墨画扇 提交于 2020-03-11 11:54:30
布局概述   容器中可以放置各种各样的元素,那么这些元素在容器中是如何排放的呢?是从左到右,还是从上到下?这些是容器自身不知道的,容器中子元素如何进行排放,在Ext中由布局来处理。   所谓的布局就是容器组件中子元素的分布、排列组合的方式。Ext中所有的容器组件都支持布局操作,每个容器都会有一个对应的布局,布局负责管理容器组件中子元素的排列、组合以及渲染方式等。   Ext提供了一套强大的布局系统,通过这些布局的应用,可以满足应用程序中各种复杂的用户界面布局处理,。在Ext中的每一个布局类都有一个简短的布局名称,在使用布局的时候直接使用布局名称即可。   布局主要应用于容器组件,在Container类中,提供了一个layout配置选项,该项可以是一个预定义布局名称 Column布局    这个布局用于在一个多列格式中创建结构化布局的布局样式, 每列可以用 百分比或固定的宽度值 来定义, 但允许高度根据内容而改变. 此类应该通过layout :'column' 属性进行扩展或创建, 通常应该不需要通过类名等关键字进行直接创建。   如果子面板中没有定义width或columnWidth, 主面板的宽度将被默认指定为子面板的宽度(或自动值auto).   参数width只能为以像素px为单位, 大于等于1的数值;   参数columnWidth只能为百分比, 其值必须为0到1之间的小数