C/C++
文章平均质量分 65
密函一封
可以不断进步乃人生一大幸事!
展开
-
如果相同的类名在两个嵌套的命名空间中定义,使用时最好显示标注命名空间
@C++ @TOCC++ 相同的类名,定义在不同的命名空间思考下面的代码。定义了两个class A,分别存在于命名空间MySpace,和SubSpace。namespace MySpace{ class A{ int a; public: A()=default; void Print(){cout<<"I'm class MySpace::A\n";} }; namespace Su原创 2021-10-25 16:03:36 · 392 阅读 · 0 评论 -
1. Two Sum(c++实现)
class Solution {public: vector twoSum(vector& nums, int target) { vector backup(nums); sort(nums.begin(),nums.end()); vector::iterator i1=nums.begin(),i2=nums.end()-1;原创 2016-07-28 13:01:22 · 1747 阅读 · 1 评论 -
策略模式C++代码示例---《大话设计模式》笔记
-------------------------------------------------------------------------------------------------------------#pragma once#include using namespace std;//基类class CashSuper{public:virtu原创 2016-06-17 17:17:59 · 466 阅读 · 0 评论 -
简单工厂模式C++代码示例---《大话设计模式》笔记
----------------------------------------------------------------------//Compute.h//基类#includeusing namespace std;#pragma onceclass Compute{protected:double num1;double num原创 2016-06-17 16:03:59 · 340 阅读 · 0 评论 -
简单工厂模式---《大话设计模式》笔记
简单工厂模式:充分使用C++语言的封装、继承、多态特性!例子1:输入:两个操作数、一个运算符 输出:计算结果//类的设计基类: {n1,n2;virtual GetResult()} //封装!!两个操作数,计算结果的虚函数子类:加法{GetResult()} //虚函数具体实现子类:减法{GetResult()} //虚函数具体实现子类:乘法{原创 2016-06-17 10:24:46 · 382 阅读 · 0 评论 -
加减乘除的c++实现
算法描述参考:http://www.cnblogs.com/kiven-code/archive/2012/09/15/2686922.html#include using namespace std;int Add(int a,int b)//加法{ int x,y,icarry=0;//icarry进位标志 int result=0; //从低位到高位 按位加 f原创 2016-06-30 17:56:37 · 6649 阅读 · 0 评论 -
371. Sum of Two Integers
不用考虑正负数的问题,因为负数在计算机中用补码表示,所以用正常的加法规则计算即可!class Solution {public: int getSum(int a, int b) { int x,y,icarry=0; int result=0; //位二进制加法,icarry进位标志 for(int n=0;n<32;n++){原创 2016-06-30 15:57:42 · 548 阅读 · 0 评论 -
334. Increasing Triplet Subsequence(C++实现)
算法思想一: 用min,max记录递增序列中的第一个和第二个数,若出现a[i]大于这两者就返回true,更新两个值!算法思想二: 用L1,L2标记当前找到1个还是2个递增序列,min1,min2记录当前自增序列中最小值和第二小值。原创 2016-05-13 10:05:31 · 306 阅读 · 0 评论 -
300. Longest Increasing Subsequence(C++实现)
动态规划算法,运行时间不短,以后再更新。class Solution {public: int lengthOfLIS(vector& nums) { //动态规划,f[i]存储以第i个元素结尾的最长子序列。 const int N=nums.size(); if(N<=1)return N; int f[N],max=原创 2016-06-30 09:52:04 · 451 阅读 · 0 评论 -
354. Russian Doll Envelopes(C++实现)
运行时间较长,有时间再改进吧class Solution {public: void sort(vector>& s) { const int N=s.size(); //insert sort从小到大排序 for(int i=1;i<N;i++) { int first=s[i].fir原创 2016-06-29 22:16:29 · 973 阅读 · 0 评论 -
322. Coin Change(C++实现)
递归算法:class Solution { int *dp; vector a; int dfs(int S) { if(dp[S]!=-2) return dp[S]; int ans=-1; for(int i=0;i<a.size();i++)原创 2016-05-23 21:07:49 · 899 阅读 · 0 评论 -
349. Intersection of Two Arrays(C++实现)
答案一:class Solution {public: vector intersection(vector& a, vector& b) { sort(a.begin(),a.end()); sort(b.begin(),b.end()); vector ans; for(int i=0,ll=0;i<b.size()原创 2016-05-20 16:57:47 · 1157 阅读 · 0 评论 -
337. House Robber III (C++实现)
解题思路:递归求解,若为空树返回0;若只有一个根结点就返回根结点的值;否则,若根结点有孩子,两种抢法:抢根结点!不抢根结点,抢根结点的孩子子树!取最大值(选抢的多的方案)!(注:抢根结点,就不能抢根结点的孩子!但可以抢根结点的孩子的孩子~~~)C++代码:原创 2016-05-09 18:41:26 · 781 阅读 · 0 评论 -
330. Patching Array (C++实现)
解题思路:假设数组nums的“部分元素和”可以表示范围【1, total】内的所有数字,那么向nums中添加元素add可以将表示范围扩充至【1, total + add】,其中add ≤ total+1,当且仅当add = total+1时取到范围上界[1, 2 * total)。若取add>total+1,则会出现断层,元素的和不能覆盖整个【1, total + add】。若nums数组为空,则构造[1, n]的nums为[1, 2, 4, 8, ..., k],k为小于等于n的2的幂的最大值。原创 2016-05-17 09:34:29 · 342 阅读 · 0 评论 -
198. House Robber(C++实现)
动态规划求解,设n-2座房子最多能抢到f(n-2),n-1座房子能最多抢到f(n-1),n座房子最多能抢f(n),最后一座房子里有nMoney,则可以推导出他们之间的关系(分两种情况,第一种不抢最后一座房子得到收益f(n)=f(n-1);第二种抢最后一座房子得到收益是f(n)=f(n-2)+nMoney;显然抢钱者会选择最大收益!即f(n)=max{f(n-1),f(n-2)+nMoney}.原创 2016-02-16 20:31:11 · 554 阅读 · 0 评论 -
213. House Robber II
解题思路:若第一座房子和最后一座房子只抢其一,去掉不抢的那栋,此题就回归到198 House Robber 的解!原创 2016-05-05 10:38:59 · 595 阅读 · 0 评论 -
C++中 volatile关键字,实现多线程编程必备
讲讲C++中的volatile关键字引子1 猜猜看,下面这段代码有什么问题:1234void Delay(UINT32 n){ while(—n);} 答案: 本来代码完全正常,但是为了优化性能,打开了编译器的优转载 2016-11-09 12:45:46 · 1087 阅读 · 0 评论 -
指针、++。易错小程序示例
#include#includeint main(){ int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf("%d,%d\n",*ptr,*(++ptr)); system("pause"); return 0;}此程序输出结果为:8,8第一个坑在于:注意自增运算符++;第二个坑在于c中的p原创 2016-10-10 10:28:55 · 390 阅读 · 0 评论 -
用数组实现整数集合
#include#includeusing namespace std;class IntSet{public: IntSet(); IntSet(int a); void Empty(); bool IsEmpty(); bool IsMemberOf(int a); int Add(int a); bool Sub(int a); bool IsEqual(IntSe原创 2016-10-31 21:45:10 · 45053 阅读 · 0 评论 -
c++私有成员变量,还可以这样访问
基础不扎实,永远都是坑原来可以这样使用class 的private成员变量原来可以这样使用class 的private成员变量private成员变量只能类的内部使用,这句话刚学编程就记住了,可是今天还是遇到了一个颠覆我认知的代码。(如果不是同事提醒,我就可能多绕一圈!)#include <iostream>using namespace std;class testPriv...原创 2019-04-12 11:23:16 · 1142 阅读 · 0 评论 -
两个有序链表合并——非递归实现
#include <iostream>using namespace std;#include <stdlib.h> /* malloc, calloc, realloc, free */struct ListNode{ int value; ListNode* pNext;};ListNode* MergeList(ListNode* list1,...原创 2018-05-24 07:52:43 · 361 阅读 · 0 评论 -
使用Qt示例代码实现的视频播放。VS项目
最近越发感到Qt的强大,简单易用!从最开始接触是在今年4月底,花了半个月时间使用Qt和QtitanRibbon,开发了一个程序框架,类似于office风格那种。当时以为自己好厉害,现在相信全是因为Qt太强大(傻笑~~)好的库确实可以造福万民啊!(程序员从业人员已经超过千万了)言归正传,项目需要,要做一个视频播放功能,要求支持h264、mpg4等等格式。借助Qt示例代码,半天搞定原创 2017-11-27 21:25:53 · 3536 阅读 · 0 评论 -
c++与JavaScript的语法差异点,小笔记
项目需要,最近自学了一点JavaScript,记录一些两种不同语言的差异点。纯属个人笔记,写的不好也肯定有不足,感兴趣的朋友看看就好。c++:int、float、double、char……各式各样(整型、浮点型、字符、)JavaScript:var打遍天下! 数据只有以下区分:Number、NaN、Infinity、null、undefined--------------原创 2017-11-27 20:40:26 · 1888 阅读 · 0 评论 -
地球上一个点(经纬度),求其周围360度,距离1米的采样点的经纬度坐标(每10度采一个点,共36个点)
struct pointInEarth{ double lon;//经度 double lat;//纬度 double height;//高程};void surroundPoints(double longtitude, double latitude){ pointInEarth points[36];//结果在这里 double dis = 0.001;//两点之间的距离原创 2017-11-27 10:54:33 · 1556 阅读 · 0 评论 -
Qt读取json文档内容
json文档格式如下:{ "content":[ //数组 { //object1 "key1":"键值1", "key2":"键值2" …… }, {原创 2017-12-20 17:49:54 · 2053 阅读 · 0 评论 -
网易有道2017春季实习笔试编程题-个人解答-欢迎高手来优化
(无法还原原题描述,根据个人理解简化了题目的描述。希望没有歧义,如有错误敬请包含。)(提供的代码已通过全部测试,已被Accepted。但是期望更好的解答,望高手不吝赐教,如能留下更好理解或性能更优的代码,将不胜感激。)第一题:从坐标原点(0,0)出发到目的地(dx,dy)的最快时间计算。可以直接步行走到目的地,也可以先走到附近的车站,然后坐车到目的地。x或y轴的一个单位走路原创 2017-03-28 22:46:48 · 1171 阅读 · 0 评论 -
DirectX编程开发准备工作 ---Directx SDK安装,及在2010中的配置
最开始想当然的安装了DirectX,郁闷了半天,找不到安装目录。然后搜了DirectX 编程,才明白要安装DirectX SDK。。。这坑踩的。下载:DirectX SDK的下载地址:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812附上看的网址:DirectX游戏开发编程基础原创 2017-02-04 16:12:06 · 1104 阅读 · 0 评论 -
二维数组指针、vector,实现m*n矩阵代码
运行结果截图:二维数组指针:#includeusing namespace std;int main(){ int m=0,n=0; cout<<"请输入矩阵的行数和列数:"<<endl; cin>>m>>n; int **arr=new int*[m]; for(int i=0;i<m;i++) arr[i]=new int[n]; cout<<"输入矩阵原创 2016-12-16 12:44:17 · 1104 阅读 · 0 评论 -
Directx绘制正方体 +灯光 源代码
#include#include #include "d3dx9.h" //Driect9.0的头文件#include#pragma comment(lib,"Msimg32.lib")#pragma comment(lib,"winmm.lib")#pragma comment(lib,"d3d9.lib")#pragma comment(lib,"d3dx9.lib原创 2016-12-08 13:18:19 · 1544 阅读 · 0 评论 -
Directx09 创建窗口代码
#include"d3d9.h"#include"d3dx9.h"//-------------------------global variables---------LPDIRECT3D9 g_pD3D=NULL;LPDIRECT3DDEVICE9 g_pd3dDevice=NULL;VOID Cleanup(){ if( g_pd3dDevice != NULL)原创 2016-12-07 11:13:06 · 460 阅读 · 0 评论 -
superLU 在VS2010中的配置
1、从官网下载SuperLU文件: http://crd-legacy.lbl.gov/~xiaoye/SuperLU/2、生成库文件:生成SuperLU.lib文件:(1)新建一个工程,命名为SuperLU,先将SuperLU\SRC 中的所有的.c文件添加到源文件文件夹中,所有的.h文件添加到头文件文件夹中。并在工程的属性->C/C++->常规->附加包含目录中加入转载 2016-08-28 10:42:19 · 1995 阅读 · 1 评论 -
第一次运行DirectX项目 ——相关问题解决
环境配置: 项目属性设置--包含目录和库目录,要包含DirectX安装路径上的Include文件和Lib文件。包含目录 D:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include库目录 D:\Program Files (x86)\Microsof原创 2016-06-22 20:49:01 · 763 阅读 · 0 评论 -
打印100以内的素数(质数)----C++实现、python实现
空间复杂度O(n),时间复杂度较快的代码(到底多少呢,求解答):(思想:当i是质(素)数的时候,i的倍数必然是合数。如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉。)Python实现:#输出100以内的素数data=[]for i in range(2,101): data.append(i)for j in data: i=j原创 2016-10-31 13:30:17 · 3019 阅读 · 0 评论 -
347. Top K Frequent Elements (C++程序实现,两种方案)
解题思路:因为map和multimap容器存储的元素对,会自动根据key值自动排序,所以只要统计出每个元素出现的次数,然后将次数作为key值,元素作为value值存入multimap中。直接遍历multimap最后k个数对就得到k个出现频率最高的元素。map存储数组中的元素nums[i]及其对应出现的次数。然后将map中的数对(key,value)对调存储于multimap,用迭代器从后往前遍原创 2016-05-04 10:46:35 · 1440 阅读 · 0 评论 -
简析C++为何有“接口”与“函数”
公有继承的概念实际上包含两个相互独立的部分:函数接口的继承和函数实现的继承。二者之间的差别恰与函数声明和函数实现之间相异之处等价(本书引言中有介绍)。假如你是一个类设计人员,某些场合下你需要使派生类仅仅继承基类成员函数的接口(声明)。而另一些时候你需要让派生类继承将函数的接口和实现都继承过来,但还期望可以覆盖继承来的具体实现。另外,你还可能会希望在派生类中继承函数的接口和实现,同时不允许覆盖任原创 2016-05-27 10:57:16 · 956 阅读 · 1 评论 -
341. Flatten Nested List Iterator
/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * class NestedInteger { * public: * // Return t原创 2016-04-28 15:54:57 · 619 阅读 · 0 评论 -
343. Integer Break
分析找规律:n : 2 3 4 5 6 7 8 9 10 11返回值: 1 2 2×2 2×3 3×3 2×2×3 2×3×3 3×3×3 2×2×3×3 2×3×3×3程序如下:class Solution {public: int integerBreak(int n) {//给定不小于2的正数n,原创 2016-04-28 12:11:46 · 453 阅读 · 0 评论 -
345. Reverse Vowels of a String
本题关键在于找到字符串中的元音字母,用i,j从字符串首尾向中间遍历,遇到元音字母时交换,直到i>=j结束。代码:class Solution {//英文字母中的元音字母有 a,e,i,o,u.public:int check(char c){ string S="aeiou"; return (string("")+c).find_first_o原创 2016-04-28 11:07:21 · 493 阅读 · 0 评论 -
121. Best Time to Buy and Sell Stock(只允许一次交易)
我的算法运行时间较长:代码如下:class Solution {public: int maxP(vector& prices,int left,int right){ if(left==right)return 0; int i=left,j=left,max,min; max=min=prices[left];原创 2016-04-27 22:20:27 · 367 阅读 · 0 评论 -
344. Reverse String
class Solution {public: string reverseString(string s) { string temp; for(int i=0;i<s.size();i++){ temp.insert((std::string::size_type)0,1,s[i]); } ret原创 2016-04-27 21:37:34 · 247 阅读 · 0 评论