概述
1、map(STL关联容器)
map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。
pair的类型:pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象放进去。
使用map得包含map类所在的头文件: #include <map> //注意,STL头文件没有扩展名.h
#include<map>
#include<string>
#include<iostream>
using namespace std;
int main()
{
map<int, string>mapStudent;
mapStudent.insert(pair<int, string>(1, "student_one"));
mapStudent.insert(pair<int, string>(2, "student_two"));
mapStudent.insert(pair<int, string>(3, "student_three"));
map<int, string>::iterator iter;
for (iter = mapStudent.begin(); iter != mapStudent.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
}
system("pause");
return 0;
}
https://baike.baidu.com/item/Map/5808503
value_type 就是stl容器盛装的数据的数据类型。
vector<int> vec;
vector<int>::value_type x;
上述两句代码,第一句是声明一个盛装数据类型是int的数据的vector,第二句是使用vector<int>::value_type定义一个变量x,这个变量x实际上是int类型的,因为vector<int>::value_type中声明的为int型。
https://blog.csdn.net/lg1259156776/article/details/77992822
2、wstring与string的区别
发现一个问题,VS2017中按照网上写的代码出来的都乱码,求解。
https://bbs.csdn.net/topics/392514423
3、#if 0 #endif
#if 0 #endif 可以解决 /*......*/ 嵌套注释出现的问题。
https://blog.csdn.net/raining_heart/article/details/8019535
#if 0 , #if 1 , #else , #endif
https://blog.csdn.net/wwwsssZheRen/article/details/79077141
4、try.....catch..... throw
使用 try catch 的原因:人们设计出来的程序,做不到天衣无缝,在运行时总会出现各种意想不到的异常。因此,希望程序不仅能在正确的情况下正常运行,而且在程序有错误的情况下也能作出相应的处理,而不致使程序莫名其妙的终止崩溃,甚至出现死机的现象。比如做除法时分母遇到0,访问到了非法指针。
https://blog.csdn.net/Dengdew/article/details/80617344
https://blog.csdn.net/gukesdo/article/details/6901991#commentsedit
5、虚函数和纯虚函数,为什么定义虚函数?
https://blog.csdn.net/hackbuteer1/article/details/7558868
定义一个函数为虚函数,不代表函数为不被实现的函数。
定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。
定义一个函数为纯虚函数,才代表函数没有被实现。
定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。
6、C++多线程
join(): 阻塞主线程,等待当前线程执行完之后才继续执行后面的内容
detach(): 使子线程与主线程独立运行、并行执行,不会阻塞主线程
头文件:
#include <thread>
#include <Windows.h>
存在线程互斥:
头文件:
#include <thread>
#include <Windows.h>
#include <mutex>
mutex mu; //线程互斥对象
mu.lock();//同步数据锁
mu.unlock();//解除锁定
https://blog.csdn.net/dcrmg/article/details/53912941
7、CDialog与CDialogEx
CDialogEx类是CDialog的扩展类,基类就是CDialog,具备基类全部功能,并根据新系统需要增加了一些界面美化的功能。
比如修改对话框的背景颜色,标题栏的颜色,标题栏的位图,标题栏字体的位置和颜色,包括激活和非激活状态,对话框边界的颜色,对话框字体等。
两个在基础功能上没什么区别,但因为版本不同,MFC向导生成的类模板差异较大。
https://www.cnblogs.com/MakeView660/p/8662336.html
8、GetScrollPos,是获取指定滚动条中滚动按钮的当前位置的一种函数。
static_cast<int> 是类型强制转换。
afx_msg宏表示声明的是一个消息响应函数。
SetWindowPos():设置按钮或其他控件、窗口的位置。
函数原型:
BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter,int X,int Y,int cx, int cy, UINT uFlags);
https://www.cnblogs.com/tmdsleep/p/9734812.html
最后
以上就是乐观魔镜为你收集整理的summary2 map(STL关联容器)、#if 0 #endif、try.....catch..... throw、虚函数和纯虚函数、C++多线程、GetScrollPos的全部内容,希望文章能够帮你解决summary2 map(STL关联容器)、#if 0 #endif、try.....catch..... throw、虚函数和纯虚函数、C++多线程、GetScrollPos所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复