C++标准模板库编程实战_序列容器
简述 array<T,N> 长度固定,N个T类型的对象 不能增加或删除元素 vector<T> 底层实现是封装了顺序表,是一块物理上连续的空间 长度可变,必要时可以自动增加容量 但只能在序列的末尾高效的增加或删除元素 deque<T> deque是由一段一...
简述 array<T,N> 长度固定,N个T类型的对象 不能增加或删除元素 vector<T> 底层实现是封装了顺序表,是一块物理上连续的空间 长度可变,必要时可以自动增加容量 但只能在序列的末尾高效的增加或删除元素 deque<T> deque是由一段一...
意义 设计并发数据结构,意味着多个线程可以并发的访问这个数据结构,线程可对这个数据结构做相同或不同的操作,并且每一个线程都能在自己的自治域中看到该数据结构。且在多线程环境下,无数据丢失和损毁,所有的数据需要维持原样,且无条件竞争。这样的数据结构,称之为“线程安全”的数据结构。 本...
什么是并发 概念 在最简单,最基本的层面,并发是指两个或更多的独立活动同时发生。 计算机的并发 指的是在单个系统里,同时执行多个独立的活动,而不是顺序地或是一个接一个地。 两种并发 任务切换 以前,大多数计算机都只有一个处理器,具有单个处理单元或核心,至今有很多机器仍是这样。 对...
关于圆角 没有子窗口 如果SOUI的宿主窗口没有包含子窗口,直接使用窗口的半透明属性:translucent=1就可以解决了,整个窗口形状完全由背景图决定,可以实现完美的圆角。 有子窗口 窗口半透明时,窗口中的子窗口(非SWindow)就不能正常显示,所以有时候不得不使用tran...
创建 窗口 动画事件 这个初始化函数会在OnInitDialog里面调用,OnInitDialog对应到了MSG_WM_INITDIALOG消息 可以看到,这里给目标对象,背景图片,添加了阿尔法值变化的相关事件(开始和结束),并绑定到了OnBkgAlphaAniEx函数上 当启动...
获取 通过一个COM接口的方式获取到一个管理器对象 ThreadHelper 是一个抽象类,接口run是抽象的 start 作为抽象基类,实现了start 主要功能是创建了一个线程(是跨平台的实现), 然后创建了一个Helper,调用了run run里面开始往列表里放数据 wai...
创建动画 窗口 这个内容的设计是,作为一个组件存在(DLL),其他一个地方,会在比较早的时机统一调用这些插件的同名接口。 调用的时候会创建UI对象,并在这个UI对象的初始化里面,创建下面的窗口对象,并指定该对象位置,调用该对象初始化函数InitControls,设置该对象的可见与...
函数返回值类型推导用于模板 变量模板 别名模板 std::shared_timed_mutex与std::shared_lock C++14通过std::shared_timed_mutex和std::shared_lock来实现读写锁,保证多个线程可以同时读,但是写线程必须独立...
SetMsgHandled 当用户在自己的消息映射表中增加一个消息处理函数,而且是插入在映射表的CHAIN_MSG_MAP(SHostWnd)前(也应该在此之前,否则很可能就收不到消息)。 默认情况下会自动标志该消息已经被处理了,如此一来就不会继续交给SHostWnd处理。 解决...
导出SOUI对象到Lua 为了在SOUI中使用lua,需要使用lua内核实现一个SOUI::IScriptModuler接口。 导出SOUI对象通常应该在IScriptModule的实现类的构造中执行 在lua中使用 事件分发处理 在MFC中,一个类要处理消息,这个类通常派生自C...
搜索当前标签