昨天写的逻辑判断,对find返回npos的意义理解的很模糊,查看了cpp primer后发现下面的内容,得知find方法返回一个名为 string::npos 的特殊值,说明查找没有匹配。粘上以备记忆.
The string class provides six search functions, each named as a variant of find. The operations all return a string::size_type value that is the index of where the match occurred, or a special value named string::npos if there is no match. The string class defines npos as a value that is guaranteed to be greater than any valid index.
string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。这些操作全都返回 string::size_type 类型的值,以下标形式标记查找匹配所发生的位置;或者返回一个名为 string::npos 的特殊值,说明查找没有匹配。string 类将 npos 定义为保证大于任何有效下标的值。
比如:
string str;
pos=str.find_first_of("h");
if(pos!=string::npos)
{..
....
}
图标导入
项目中导入图标,已经通过复制资源的方式,在项目的Resource.h文件自动添加了相关定义;将相关的ico资源拷贝了项目的相应目录下。但是编译时始终无法识别。这时候需要右键|添加资源|导入图标,选择图标路径进行导入。
调试技巧:
1、对mousemove之类的函数调用调试,如果一开始设置断点将会不断中断,无法调到希望的位置。解决办法是,先不设置任何断点,在程序启动之后,做好移动准备时,再设置mousemove断点,如果中断太敏感,可以将断点条件设一个值
2、对于有些程序,编译没有问题,在运行时加载资源或者其他运行时原因导致的问题进行调试时,在出现出错界面后,选择中断,然后,选择当前项目进行调试。此时,程序出于中断状态,程序到底执行到哪里,那条语句导致错误则可以通过调用栈来分析。