08 2019 档案

摘要:我们在编程的时候,无可避免要申明变量,在这个变量可以是在()中,可以在{}中,也可以直接在外面,也可以用new的方式.那么当我们在申明变量的时候,实质上我们所做的工作是:关联了一个内存模型! 上代码: 我们分析上面程序中的三个典型变量:zhangsan,lisi(在main函数中的),以及第七行的m 阅读全文
posted @ 2019-08-31 16:47 少年π 阅读(375) 评论(0) 推荐(0)
摘要:上一次讲述了多线程编程,但是由于线程是共享内存空间和资源的,这就导致:在使用多线程的时候,对于共享资源的控制要做的很好。先上程序: 上面一段程序,在main进程中创建了两个子线程t1,t2。对各个子线程的cout输出流进行了加锁,完了又对锁进行了释放。 其结果如下: 可见:线程t1,t2是交替执行的 阅读全文
posted @ 2019-08-30 11:37 少年π 阅读(2952) 评论(0) 推荐(0)
摘要:c++多线程并发可以帮助我们挖掘CPU的性能,在我们的思想中,似乎程序都是顺序执行的。这样的结论是建立在:程序是单线程程序。(比如我们平时写的hello world程序)。 但是如果程序是多线程的。那么这个结论就不成立了。先上代码: 程序中: #include <thread>包含了线程类threa 阅读全文
posted @ 2019-08-29 11:32 少年π 阅读(928) 评论(0) 推荐(0)
摘要:上一篇中讲到暴力法字符串匹配算法,但是暴力法明显存在这样一个问题:一次只移动一个字符。但实际上,针对不同的匹配情况,每次移动的间隔可以更大,没有必要每次只是移动一位: 关于KMP算法的描述,推荐一篇博客:https://blog.csdn.net/weixin_36604953/article/de 阅读全文
posted @ 2019-08-26 16:58 少年π 阅读(244) 评论(0) 推荐(0)
摘要:字符串匹配是一项重要的内容,本处我们讨论的字符串匹配是完全匹配,也就是找出子字符串在父字符串中的匹配位置。 例如:父字符串:EDGRNGIGEDEDGEDGLGDEDG,子字符串:EDG;则需要知道“EDG”在父字符串中的位置。先上代码: 需要说明的是:函数BFmatch的返回类型为vector<i 阅读全文
posted @ 2019-08-24 11:16 少年π 阅读(836) 评论(0) 推荐(0)
摘要:熟悉c风格的矩阵定义,那么用纯c++特性vector如何定义一个矩阵呢? 1 # include<vector> 2 # include <iostream> 3 int main() 4 { 5 using namespace std; 6 vector<vector<int>> array(3) 阅读全文
posted @ 2019-08-21 22:22 少年π 阅读(4576) 评论(0) 推荐(1)