【[源码和报告分享] 基于C++的民航订票系统的设计与实现】教程文章相关的互联网学习教程文章

Leetcode 141. 环形链表 解题思路及C++实现

解题思路: 定义快慢两个指针,当指针所指节点是同一个时,说明出现了环。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:bool hasCycle(ListNode *head) {if(!head || !(head->next)) return false;ListNode* fast = head;ListNode* slow = head;while(fast && fast->next){slow = slow->next;f...

C++ 使用STL string 实现的split,trim,replace-修订【代码】

写个小工具函数#include <iostream> #include <vector> using namespace std;namespace strtool { string trim(const string& str) {string::size_type pos = str.find_first_not_of( );if (pos == string::npos){return str;}string::size_type pos2 = str.find_last_not_of( );if (pos2 != string::npos){return str.substr(pos, pos2 - pos + 1);}return str.substr(pos); }int split(const string& str, vector<string>& ret_,...

最长公共子序列c++实现【代码】

最长公共子序列 给定两个字符串S1和S2,求两个字符串的最长公共子序列的长度。 输入样例 ABCD AEBD 输出样例 3 解释 S1和S2的最长公共子序列为ABD,长度为3 思路 动态规划 LCS(m,n)LCS(m ,n)LCS(m,n)表示S1[0...m]S1[0...m]S1[0...m]和S2[0...n]S2[0...n]S2[0...n]的最长公共子序列的长度 S1[m]==S2[n]:LCS(m,n)=1+LCS(m?1,n?1)S1[m] == S2[n]: LCS(m, n) = 1 + LCS(m - 1, n - 1)S1[m]==S2[n]:LCS(m,n)=1+LCS(m?1,n?1) S1[m]!=S2[...

并查集c++实现【代码】

#include <iostream> #include <vector> #include <cassert>using namespace std;class UnionFind{ private:vector<int> parent;int count;//优化,记录p和q所在组的深度,在合并时将深度小的结点的根指向深度大的结点的根vector<int> rank; public:UnionFind(int count){parent.resize(count);rank.resize(count);this->count = count;for(int i = 0; i < count; ++i){parent[i] = i;rank[i] = 1;}}~UnionFind(){parent.clear();...

c++实现输出菱形【代码】

原文链接:http://www.cnblogs.com/jianpingchen/archive/2011/11/18/2254633.html#include<iostream>using namespace std;#include<math.h>void main(){int n,t,b,k,j;cin>>n;//n是菱形中心长*号的数量t=(n+1)/2;for(k=1;k<=n;k++){b=abs(k-t);for(j=1;j<=b+10;j++)cout<<"";for(j=1;j<=2*(t-b)-1;j++)cout<<"*";cout<<endl;}}转载于:https://www.cnblogs.com/jianpingchen/archive/2011/11/18/2254633.html

C++语法小记---自己实现Thread类【代码】

自己实现Thread类在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static !参考:https://blog.csdn.net/ksn13/article/details/405380831 //方式1:使用类的static函数做转换,配合this指针2 class Thread3 {4 private:5 pthread_t id;6 7 static void * start_thread(void *arg)8 {9 Thread* thread = (Thread*)arg; 10 thread->run(...

关于C/C++中的++i和i++实现机制的探讨【代码】

近日在教学过程中,遇到了一个比较有意思的代码: int main() {int i = 0;i = i++;//问如果打印i的值,结果是多少?return 0; }这个问题实际上涉及到了前置及后置操作符的内部实现问题。关于深入语言的底层汇编实现机制,大师兄的另一篇博客已经探讨过了,这里不再赘述,有兴趣的小伙伴可以移步:http://blog.csdn.net/shouhouxinling/article/details/52776646 下面我们通过模仿前置和后置操作符的实现方式,来加深对前置、后置操...

vibe算法 c++实现【代码】【图】

vibe算法 vibe 全称是 visual background extractor。算法性能很好,甚至优于GMM。我们从三个方面分析一下: (1)what is the model and how does it behave? (2)how is the model initialized? (3)how is the model updated over time? 模型原理 我们可以将前景提取问题看作是一个分类问题。对每一个像素点,为了避免某个异常值对结果产生较大的影响,采用的方法是为每一个像素点搭配了一组样本值。组内的值是该像素的过去...

date日期类实现-C++【代码】

#include<iostream> #include<assert.h> #include<vector> using namespace std;class Date { public://构造函数Date(int year = 1900, int month = 1, int day = 1){this->_year = year;this->_month = month;this->_day = day;}//拷贝构造Date(const Date& d){this->_year = d._year;this->_month = d._month;this->_day = d._day;}//赋值运算符重载Date& operator=(const Date& d){if (this != &d){this->_year = d._year;this-...

[算法]各种排序算法的C++实现【代码】【图】

我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。排序算法大体可分为两种:一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。 下表给出了常见比较排序算法的性能: 为了便于以下描述,接下来全部算法的排序对象均为乱序数组int a[n]冒泡排序...

冒泡排序的 C++ 实现【代码】【图】

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。1. 算法描述比较相邻的元素。如果第一个比第二个大,就交换它们两个; 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该...

生产-消费者,C++11实现【图】

C++11中新增加了线程库<thread>和原子操作库<atomic>,使用这两个库可以实现生产——消费者模型。上代码 简单实现的代码 运行结果截图,看来暂时没问题 由于没有看过什么书,这都是我瞎猜的…

c++实现二分查找【代码】【图】

原文链接:http://www.cnblogs.com/riasky/p/3429177.html简要描述:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除 困难。 条件:查找的数组必须要为有序数组。 二分查找的过程剩简要描述如下图:二种实现方式1.递归 /* arrat:数组 , low:上界; high:下界; target:查找的数据; 返回target所在数组的下标 */ int binarySearch(int array[], int low, int high...

【C++】代码实现:全局钩子注入技术

一、概述 在 Windows 中大部分的应用程序都是基于消息机制的,它们都有一个过程函数,根据不同的消息完成不同的功能。 Windows 操作系统提供的钩子机制就是用来截获和监视系统中这些消息的。 按照钩子作用的范围不同,它们又可以分为局部钩子和全局钩子。局部钩子是针对某个线程的,而全局钩子则是作用于整个系统的基于消息的应用。 全局钩子需要使用 DLL 文件,在 DLL 中实现相应的钩子函数。 二、实现原理 如果创建的是全局钩子...

C++中用函数模板实现和优化抽象操作

在创建完成抽象操作的函数时,如:拷贝,反转和排序,你必须定义多个版本以便能处理每一种数据类型。以 max() 函数为例,它返回两个参数中的较大者: double max(double first, double second); complex max(complex first, complex second); date max(date first, date second); //..该函数的其它版本 尽管这个函数针对不同的数据类型其实现都是一样的,但程序员必须为每一种数据类型定义一个单独的版本: double max(double firs...