<2024年3月>
252627282912
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

  • 随笔 - 57
  • 文章 - 7
  • 评论 - 0
  • 引用 - 0

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

Blog

Coder 必备技巧

Compiler for Wurq

搜索

  •  

最新评论

阅读排行榜

评论排行榜

【LeeCode 2017/06/13】 461. Hamming Distance

 1 class Solution {
 2 public:
 3     int hammingDistance(int x, int y) {
 4         int count = 0;
 5         for (int n = x ^ y; n; n >>= 1){
 6             if ((n & 1== 1)
 7                 count++;
 8         }
 9         return count;
10     }
11 };

posted @ 2017-06-13 10:16 Wurq 阅读(119) | 评论 (0)编辑 收藏
【Vs 插件开发】清理Vs实验实例的环境

在Vs插件开发时,在实验实例的环境中卸载插件,再次启动程序运行插件时,会提示未找到该插件。
因为你仅仅卸载了插件,没有进行清理实验实例环境,vs的实验实例环境会认为该插件仍然存在。
解决方法1:
   修改Vs插件中的版本号或者项目ID

解决方法2:
   使用VSSDK进行环境清理。
   1.首先,需要安装相应的Windows的SDK程序。
   2.通过Vs中的VSSDK里面的CreateExpInstance.exe 实现清空实验环境。
      执行指令 /Reset /VsInstance=14.0 /RootSuffix=Exp

posted @ 2017-06-12 14:04 Wurq 阅读(313) | 评论 (0)编辑 收藏
【LeeCode 2017/06/12】 617. Merge Two Binary Trees

 1 class Solution {
 2 public:
 3     TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
 4         if(t1 == NULL)
 5             return t2;
 6             
 7         if(t2 == NULL)
 8             return t1;
 9 
10         TreeNode* new_tree = new TreeNode(t1->val + t2->val);
11         new_tree->left = mergeTrees(t1->left, t2->left);
12         new_tree->right = mergeTrees(t1->right, t2->right);
13         return new_tree;
14     }
15 };

posted @ 2017-06-12 13:56 Wurq 阅读(194) | 评论 (0)编辑 收藏
【编程术语】

反射机制 : 程序可以访问、检测和修改它本身状态或行为的一种能力

引用和项目依赖项目的区别:
    添加项目依赖项会在你的项目之前先编译加载依赖项
    如果你要调用依赖项里面的东西,需要添加引用,来获取依赖项的东西

调用静态库方法:
    如果存在当前项目中的话,直接添加引用.
    如果项目依赖于xxx.lib,在依赖项中添加xxx.lib,在通过引用来实现调用lib
    如果项目不存在项目中的话,可以直接通过#pragma comment(lib, "xxx.lib") 实现引用


比如有mts.dll,test1.dll,test2.dll
test1.dll 和 test2.dll都依赖于mts.dll
mts.dll中有一个初始化函数,初始化对象TEST.
对于模块test1.dll和test2.dll中,
各自存在一个模块mts,但没有调用mts中的初始化函数,所以,自身模块的mts中的TEST未初始化.

 Linux-makefile命令多线程编译:
   使用 -jn,表示开了n个线程进行编译

posted @ 2017-04-24 16:39 Wurq 阅读(149) | 评论 (0)编辑 收藏
【编码规范】C++ 编码规范

  1. 函数名称
    • 各单词小写,单词间用下划线隔开。
    • 例如:run_tempelate()
  2. 变量名称
    • 各单词小写, 单词间用下划线隔开。
    • 例如:curr_velotity
  3. 指针、引用
    • *和& 使用注意,应该紧跟变量名或者类型名
    • int* value 或 int *value
    • int& value 或 int &value
  4. auto
    • 应该尽可能的使用 auto,特别是在for循环中
  5. 类的规范
    • 成员变量:静态 s_name, 非静态 m_name 单词小写
    • 访问权限控制 public/private/protect: 后不应该有空行
  6. 参数类型过长
    • 采用 typedef 简化参数类型
    • 例如:typedef simple:link_list<DNode> DNode_list

posted @ 2017-04-13 09:07 Wurq 阅读(190) | 评论 (0)编辑 收藏
【Every Day】Fighting!!!

日期:2017/4/10
   上班时间:(09:00~18:00)
      周一:

            09:00~10:30      安排当周工作任务(每天task) & 学习新知识
            10:30~11:45      开始工作(如果完成早上工作任务,继续学习新知识)
      平时:
            09:00~10:00      安排早上工作任务 & 学习新知识
            10:00~11:45      开始工作(如果完成早上工作任务,继续学习新知识)

      13:15~14:30      安排下午工作任务 & 学习新知识
      14:30~18:00      开始工作(未完成早上任务,则需要优先完成)

   加班时间:(19:00~21:00)
      19:00~21:00      完成当天工作任务(已完成则写博客,总结)

   周末加班(10:00~18:00)
      10:00~11:00   安排容易点的工作任务 & 学习新知识
      11:00~11:45   开始工作(如果完成早上工作任务,继续学习新知识)     
      13:15~14:30   安排下午工作任务 & 学习新知识
      14:30~16:00   开始工作(未完成早上任务,则需要优先完成)
      16:00~18:00   完成当周工作任务(已完成则写博客 & 总结)

posted @ 2017-04-10 09:36 Wurq 阅读(157) | 评论 (0)编辑 收藏
【宏定义】静/动态 创建变量

1、利用宏定义 静态创建变量
 1 #define VAR(id) var_##id
 2 
 3 #define _TO_STR(var_name) #var_name
 4 #define TO_STR(var_name) _TO_STR(var_name)
 5 
 6 #define _DEF(def,var,val) def var = val
 7 #define DEF(def,var,val) _DEF(def,VAR(var),val)
 8 // #define AUTO_(def,var,val) def VAR(var) = val //影响可读性
 9 
10 // DEF(def,id,val) => def var_id = val
11 DEF(int, Gbits, 511768840);
12 printf("(%s = %d)\n", TO_STR(VAR(Gbits)),VAR(Gbits));

2、能否利用宏定义 动态创建变量
能否动态创建变量 var_1,var_2, ...,var_n?答案似乎是否定的。
因为宏是在编译期间解析的,因此,宏定义无法在运行期间完成该任务
例子如下:   
1 for (int i = 1; i <=10; i++)
2 {
3     DEF(int, i, i);
4     printf("(%s = %d)\n", TO_STR(VAR(i)), VAR(i));
5 }
因为宏定义在编译期间解析,因此所定义的变量编程var_i,而非var_1,var_2,...var_n.

posted @ 2017-04-08 15:16 Wurq 阅读(369) | 评论 (0)编辑 收藏
仅列出标题
共6页: 1 2 3 4 5 6