随笔分类 - C/CPP学习
摘要:size_t fuck(size_t n){ double index = 1.0; size_t result = 0; while (true) { auto count = n / static_cast(pow(5.0, index)); if(...
阅读全文
摘要:bool isWeNeeded(size_t i){ auto str = to_string(i); size_t count = 0; for(const auto &ch : str){ count += static_cast(ch) % 2; } return (count...
阅读全文
摘要:void guessNumber(){ uniform_int_distribution creator1To100(1, 100); default_random_engine engin; auto answer = creator1To100(engin); un...
阅读全文
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x...
阅读全文
摘要:写 C++ 的时候,如果前端是 Clang 那么当你定义静态全局变量时, 就可能会出现一个警告, 叫做 “exit-time destructor”。作为一个习惯把警告当作错误看的骚年, 我果断去查了为什么会这样,而结果是这样的:全局的静态变量会在程序退出后调用它的 destructor。为啥要在程...
阅读全文
摘要:是在贴吧看到的一个问题,代码如下,一如既往void foo (in{ auto str = to_string (i); cout >matchLines (map> content, string keyWord){ vector> result; bool matchTh...
阅读全文
摘要:之前在 C++ 吧里看到一个问题, 说是一个文本查询的小程序, 我在其中需要先输入一段文字, 再输入关键词来查找。前面输入之后我按下 Ctrl+Z 准备输入关键字。 结果怎么? 直接结束了!蛋疼。后来看了一些博客, 里面都提到了这个问题, 解决方法是加上这么一句:cin.clear();我在我的 V...
阅读全文
摘要:__FILE__ 宏在预编译时会替换成当前的源文件名__LINE__ 宏在预编译时会替换成当前的行号__FUNCTION__ 宏在预编译时会替换成当前的函数名称
阅读全文
摘要:还是 C++ 吧里的一个问题, 问题是这样的:char* p = "shen me gui";char* q = "hehe";strcpy(p, q);为何会出错。我当时其实也是挺奇怪, 主要我入门就是 C++ 11 标准, string 用惯了。后来问题解决了, 是因为如此初始化的指针是一个常量...
阅读全文
摘要:是 C++ 吧里, 有人问了这么一个问题:int d;cin >> d;string a;getline(cin,a);看起来应该有两次输入, 可实际只有一次输入, a 的值不知该如何获取。实际上这是一个缓冲区的问题。cin 获取到输入之后, 并不是直接就把值赋给了 d,而是先存入缓冲区中,当调用 ...
阅读全文
摘要:我当时很困惑, 因为根本就是照抄书上的代码, 而且代码也异常的简单, 头文件也都引入了, 可是仍然显示:1>源.obj : error LNK2019: 无法解析的外部符号 __imp__WSAStartup@8,该符号在函数 _main 中被引用1>源.obj : error LNK2019: 无...
阅读全文
摘要:核心思想: 完全准确地描述出该变量所代表的事物。好名字通常是在表达 what, 而不是 how。变量名在 8 到 15 正好。如果要加限定词, 那么加在最后。 例如: revenuTotal 或 revenueAverage。作为标记的变量不该有 “flag” 而应该使用枚举和具名常量。‘临时变量也...
阅读全文
摘要:bool is_prime (const vector& primes, int num){ for (const auto& prime : primes) { if (num % prime == 0) { return false; } ...
阅读全文
摘要:很简单, 因为 x + y = x - (-y)。 好的, 结束了, 感谢您的阅读哈~当然, 我是开玩笑的, 代码在这:int Add (int a, int b){ int c = a & b; int r = a ^ b; return c == 0 ? r : add (r,...
阅读全文
摘要:struct TreeNode{ //... PTreeNode& Child (Direction dir) { return dir == left? leftChild : rightChild; }};class BST{private: // ... ...
阅读全文
摘要:首先, 先明确 “结点 x 的 successor” 的概念。 这句话的概念是, successor 是整个二叉树中, key 仅比 x 的 key 大的结点。求证: 若 x 有两个孩子, 那么其 successor 没有左孩子。证明: 若 x 有两个孩子, 则其右子树存在。在二叉树链表中, 对于任...
阅读全文
摘要:上一篇博客中对 Delete 函数的实现是根据被删除节点子节点的子节点个数, 分为无子节点, 一个子节点和两个子节点的情况分别考虑的。而这次的代码是根据算法导论的实现用 C++ 直译过来的, 代码如下:void BinarySearchTree::Delete (const int32_t& val...
阅读全文
摘要:不知道为什么, 之前好几篇博客都被一些不出名的小网站抄了。 其实我写这些博客的目的是练手, 但是当知道被人抄了而自己却毫不知情, 还是有些蛋疼的。代码如下: 1 struct TreeNode; 2 typedef shared_ptr PTreeNode; 3 4 struct Tree...
阅读全文
摘要:之前我的思路是, 先用一个指针找到合适的位置, 再通过指针把值传进去……然后就陷入多重指针的深渊里了。后来我的解决方法是递归:class BinarySearchTree{private: // do something... PTreeNode MakeNewNode (const i...
阅读全文
摘要:看了算法导论的影印版的哈希表时,开始还不太明白, 想了下后觉得似乎哈希表就是数组和链表的组合, 于是根据这个思路实现了一个最简易的哈希表。这个其实我还是不太满意, 可能在以后会更新, 因为我觉得不满足 DRY 原则。class HashTable{private: const size_t ...
阅读全文
浙公网安备 33010602011771号