
C++编程
文章平均质量分 73
stary_yan
"I believe people express their appreciation to the rest of humanity is to make something wonderful and put it out there."
展开
-
<c++>时间输出
//// main.cpp// time//// Created by 颜泽鑫 on 1/18/16.// Copyright © 2016 颜泽鑫. All rights reserved.//#include <iostream>using namespace std;class time {public: time(); void settime(int原创 2016-01-18 20:49:56 · 1138 阅读 · 1 评论 -
[c++]类实现年收入计算
//// Sales.hpp// salesperson//// Created by stary on 1/21/16.// Copyright © 2016 stary. All rights reserved.//#ifndef Sales_hpp#define Sales_hppclass Salesperson {public: Salesperson();原创 2016-01-21 20:44:55 · 565 阅读 · 0 评论 -
[c++]实例-类array,重载操作符
#include "ARRAY.hpp"#include <iostream>#include <cstdlib>#include <iomanip>using namespace std;ARRAY::ARRAY(int arraysize) { size = (arraysize > 0 ? arraysize : 10); ptr = new int[size];原创 2016-01-25 21:40:17 · 955 阅读 · 0 评论 -
[c++] 友元详解
我们已知道类具备封装和信息隐 藏的特性。只有类的成员函数才能访问类的私有成员,程式中的其他函数是无法访问私有成员的。非成员函数能够访问类中的公有成员,但是假如将数据成员都定义 为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别是在对某些成员函数多次调用时,由于参数传递,类型检查和安全性检查等都需要时间开 销,而影响程式的运行效率。 为了解决上述问题,提出一种使用友元的方案。友元是一种转载 2016-02-11 12:28:08 · 461 阅读 · 0 评论 -
[c++]继承的经典例子
c++继承经典例子 转自:http://blog.youkuaiyun.com/zhaori/article/details/1700356#include <iostream>class Base{private: int b_number;public: Base( ){} Base(int i) : b_number (i) { }转载 2016-03-01 21:22:06 · 1101 阅读 · 0 评论 -
[C++]标准库容器
http://yun.baidu.com/share/link?shareid=671676084&uk=3190641435&third=0Created by stary_yan on 2/12/16. Copyright © 2016 stary_yan. All rights reserved.原创 2016-02-12 17:49:27 · 364 阅读 · 0 评论 -
[C++]函数
http://yun.baidu.com/share/link?shareid=1806708168&uk=3190641435&third=0 Created by stary_yan. Copyright © 2016 stary_yan. All rights reserved.原创 2016-02-12 20:58:22 · 304 阅读 · 0 评论 -
存储类
存储类变量的基本内容作用域(scope)代码块作用域函数原型作用域文件作用域存储时期(storage duration)变量在内存中保留的时间。静态存储时期(static storage duration) 能在程序执行期间一直存在。自动存储时期(automatic storage duration) 在程序进入定义这些变量的代码块时,将为这些变量分配内存。链接(linkage)原创 2016-02-13 14:56:40 · 462 阅读 · 0 评论 -
[C++]容器和算法
http://yun.baidu.com/share/link?shareid=618584960&uk=3190641435&third=0 Created by stary_yan on 2/12/16. Copyright © 2016 stary_yan. All rights reserved.原创 2016-02-12 17:42:54 · 470 阅读 · 0 评论 -
[c++]c++程序设计-Y.Daniel.Liang 笔记
第九章:对象和类: 1.如果不适用public关键字,那么这些成员的可见性缺省为private。 2.自定义一个类时,应将类名中每个单词的首字母大写。 3.我们可能需要创建一个对象,却只使用一次。对于这种情况,无须为对象命名。这种对象称为匿名对象。(使用缺省构造函数) 4.包含保护。头文件中要有#ifndef su_hpp#define su_hpp#endif /* su_hpp */5原创 2016-03-15 20:15:21 · 1931 阅读 · 0 评论 -
Class for Time
Please read the source code below carefully and finish the class Time’s declaration and implementation.The class Time has three member variables(type: integer): hour, minute, second.And it has many mem原创 2016-03-04 20:19:31 · 695 阅读 · 0 评论 -
[C++]queue简单实现--关于模板
#include <iostream>#include <vector>using namespace std;template <class Type> class Queueitem { template <class type> friend class Queue; Queueitem(const Type &t) : item(t), next(0) {} Ty原创 2016-03-05 10:00:51 · 717 阅读 · 0 评论 -
[c++]关于时间函数的总结
ctime(time library)是时间函数的库。1 结构typedef time_t long;time_t是长整型,表示的是距(1970年,1月1日08:00:00)的秒数,常常通过time函数获得。struct tm { int tm_sec; //秒 0-59(一般) int tm_min; //分 0-59 int tm_hour; //小时0-23 int tm_md原创 2016-03-08 20:26:51 · 575 阅读 · 0 评论 -
[c++]链表实现--持续更。
单链表的实现:功能: 1)缺省构造函数、复制构造函数(深复制)(先定义赋值操作符)、赋值操作符,析构函数。 2)empty/size函数。虽然这两个函数比较简单,但是函数的内容会持续出现,为了避免重复代码以及方便调试,一定要使用函数。就算他很简单。 3)insert\erase函数,完成最基本的添加\删除功能。 4)clear函数,用于析构函数。 5)sort函数,用于排序,最好把指针排序原创 2016-03-20 21:14:00 · 606 阅读 · 0 评论 -
[c++]类的构造函数
构造函数 ,是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。(摘自百度百科 构造函数 ) In class-based object-oriented programming, a constructor (abbrev原创 2016-02-23 23:35:06 · 398 阅读 · 0 评论 -
[C++]隐式类类型转换(转)
C++ primer 中有这么一句话:可以用单个实参来调用的构造函数定义了从形参类型到该类型的一个隐式转换。 这么解释: 比如有个类A的对象a的成员函数的参数应该是类A的对象,但是把一个别的类型B的对象b传进去了,而且这个对象b的类型恰好是A的单参数构造函数参数类型,这时系统就用这个b自作聪明的创建了一个类A的临时对象c,虽然c和a都是A类型,但是是不同的对象。 这种隐式转换有很大风险,可以用转载 2016-02-24 13:22:20 · 476 阅读 · 0 评论 -
[c++]string中删除相同字符
// string的某一个迭代器被erase后,这个迭代器自动++;#include <iostream>#include <algorithm>#include <string>using namespace std;int main() { int n; cin >> n; getchar(); while (n--) { string原创 2016-02-25 15:48:51 · 4457 阅读 · 0 评论 -
[C++]bitset用int数组实现
这并不是真正的bitset,只是用一些简单的c++知识来模仿bitset。define N 5const int max_length = 32 * N;//这个数字共有32*5位。从第0位到第max_length-1位,第0位是最低位。 class bitset { private: int a[N];//一个int32位,所以只用开N个int public: bitset();//默认原创 2016-03-13 20:55:01 · 2614 阅读 · 0 评论 -
[C++]N阶行列式计算
N阶行列式计算#include <iostream>using namespace std;double matric[10][10] = {0};// 注意这里的换值不是换指针!void swaps(double* i, double* m) { double temp = *i; *i = *m; *m = temp;}int main() { int原创 2016-04-11 22:47:38 · 6742 阅读 · 2 评论 -
[c++]关于内存。
对一个指针new了以后,如果有可能作为右值,一定要初始化。// 对于二维数组的分配内存。 for (int i = 0; i < height; i++) { param[i] = new int[width]; for (int j = 0; j < width; j++) param[i][j] = otherMat.param[i原创 2016-03-26 17:44:29 · 408 阅读 · 0 评论 -
[IOS]Protocol协议及委托代理(Delegate)传值-用代码寻找storyboard相应视图
Protocol协议及委托代理(Delegate)传值前言:因为Swift是不支持多继承的,所以很多时候都是用Protocol(协议)来代替。Protocol(协议)只能定义公用的一套接口,但不能提供具体的实现方法。也就是说,它只告诉你要做什么,但具体怎么做,它不关心。理解当一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来原创 2016-04-12 18:06:42 · 1268 阅读 · 0 评论 -
[C++]单例模式应用
单例模式的应用单例模式:单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。class CSingleton{private: CSingleton() //构造函数是私有的 {原创 2016-04-09 12:46:23 · 1019 阅读 · 0 评论 -
[C++]pseudo-random numbers(random库)
pseudo-random numbers(random库)Description:First you need to know is the idea of the method: 1. Linear-Congruential: (a * x + c) % m, a > 0, m > 0, m % a < m / a. This formulus is a linear function to原创 2016-04-23 20:53:22 · 950 阅读 · 0 评论 -
[C++]判断最大字符串
判断最大字符串题目描述如下:Giving N numbers, try to use them to construct a max number.For example, there are three numbers 56 54 5, you can make numbers 56545, 56554, 54565, 54556, 55654, 55456. The answer is the原创 2016-04-11 22:15:08 · 916 阅读 · 0 评论 -
[C++]资源管理
资源管理 所谓资源就是,一旦使用了它,将来必须归还给系统!C++最常见的资源就是动态分配内存,如果不归还就会内存泄露。1. 以对象管理资源 我们通常希望有一个对象来帮助我们解决资源管理的问题(自动调用析构函数),于是此章我们讨论auto_ptr和shared_ptr。问题产生假设我们希望使用一个工厂方法如:class investment {...}; // 代表一个root clas原创 2016-04-26 23:21:15 · 6221 阅读 · 4 评论 -
[C++]vector 的 push_back实现原理
vector 的 push_back实现原理原理:vector是用数组实现的,每次执行push_back操作,相当于底层的数组实现要重新分配大小(即先free掉原存储,后重新malloc);这种实现体现到vector实现就是每当push_back一个元素,都要重新分配一个大一个元素的存储,然后将原来的元素拷贝到新的存储,之后在拷贝push_back的元素,最后要析构原有的vector并释放原有的内存原创 2016-04-12 21:21:51 · 12184 阅读 · 4 评论 -
[C++]二叉树应用--Huffman code
二叉树应用–Huffman code 赫夫曼(Huffman)树又称最优二叉树或最优搜索树,是一种带权路径长度最短的二叉树。背景知识首先我们先讨论何为Huffman code。Max-Path of TreeGiven a binary tree, every node has a weight, then you need to find out the path that can make原创 2016-05-10 19:43:08 · 1659 阅读 · 0 评论 -
[C++]关于接口的设计与声明--对封装性的理解
设计与声明 所谓软件设计,是“令软件做出你希望它做的事情”的步骤和方法,通常以颇为一般性的构想开始,最终十足的细节,以允许特殊接口(interface)的开发。这些接口而后必须转换为C++声明式。本文讨论对良好C++接口的设计和声明。1. 让接口容易被正确使用,不易被误用 C++拥有许多的接口,function接口,class接口,template接口….每一种接口实施客户与你的代码互动的原创 2016-04-28 17:41:01 · 8917 阅读 · 0 评论 -
[C++]用变量增长模拟算法运行时间
模拟算法运行所需时间Description:Carson write a simple program to solve Fabonaci and Factorial. But he wants to know how it cost time when different inputs are given. Now you are invited as an best expert to fi原创 2016-04-16 00:23:45 · 792 阅读 · 0 评论 -
[C++]Vector源码实现
Vector源码实现 vector是STL里最常用的容器,本文尝试着用一种相对简单的方法构建一个vector实现模板,并加上std::allocator。尽可能解释其中函数的意义。代码实现用一个testAllocator继承allocator。此处特化int版本。#ifndef __TEST_H__#define __TEST_H__#include <memory>#include <i原创 2016-05-11 11:43:09 · 3567 阅读 · 0 评论 -
[C++]右值引用和转移语义
右值引用和转移语义 本文尝试着解释何为右值引用和转移语义以及使用它们具有优势,并提供相关案例分析。定义左值和右值首先我们先来理解一下什么是左值和右值。 C/C++语言中可以放在赋值符号左边的变量,左值表示存储在计算机内存的对象,左值相当于地址值。右值:当一个符号或者常量放在操作符右边的时候,计算机就读取他们的“右值”,也就是其代表的真实值,右值相当于数据值。C/C++语言中可以放在赋值符原创 2016-04-30 00:06:45 · 5898 阅读 · 4 评论 -
[C++]初识google test--单元测试神器
初识google testgtest是google的一个开源项目,专门用来做单元测试的。学习难度不算非常的大,适用于多个平台。主要就是使用断言来判断代码的正确性。在google test这个github中可以下载gtest的源码,并且在文件中有make文件夹,可以用terminal,make产生可执行文件,实际上在makefile里面写出了编译成可执行文件所需要的代码。可以打开这个文件改变其中的文件原创 2016-05-24 23:35:40 · 2966 阅读 · 0 评论 -
[C++]时间复杂度&空间复杂度
时间复杂度&空间复杂度 时间复杂度是算法分析中常用的方法。他给出了数学方法来分析算法的执行效率。本文讨论如何计算时间复杂度,并给出相应的实例。而空间复杂度则是一个程序所消耗的内存成本。这两个直接决定一个程序的运行效率以及一个算法是否高效。时间复杂度定义时间频度时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知原创 2016-05-12 13:43:49 · 9465 阅读 · 1 评论 -
[C++]实现--讨论关于实现中可能出现的问题
实现 大多数情况下,适当地提出你的class和class template定义以及function和function template声明是花费最多心力的两件事情。一旦正确地完成他们,相当的实现就简单的多了,但实际上还存在少量问题值得注意。1. 尽可能延后变量定义式的出现时间 不要太早地声明变量,因为你可能永远也用不到这个变量。函数异常终止void test(std::string& p原创 2016-05-01 11:29:03 · 3846 阅读 · 0 评论 -
[C++]关于STL慎重选择删除元素的方法
慎重选择删除元素的方法1 如果你想删除一个连续内容容器的特定值Container<int> c;c.erase(remove(c.begin(), c.end(), 1963), c.end());当c是vector, deque, string时,此方法最好。对于listc.remove(1963);对于关联容器c.erase(1963);注意,关联容器里是没有remove成员函数的。2 如果要原创 2016-04-18 11:55:22 · 398 阅读 · 0 评论 -
[c++]Xcode配置gtest
Xcode配置gtest1、准备工作: gtest:gtest github 下载,本人下载最新版1.7.0。2、打开gtest文件夹,在XCODE文件夹中打开工程,编译: (1)architectures选项选择universal。编译结束后会出来三个文件:一个framework,两个.a静态库文件 3、新建工程,我测试用的是控制台程序。由于控制台无法加载framework,因此引入原创 2016-05-25 11:46:40 · 1826 阅读 · 0 评论 -
[C++]函数对象(一)
函数对象定义重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。class FuncOdject {public: void operator()() { cout << "hello c++!" << endl; }}// 实例化一个对象FuncOdject val;val() // cout <<转载 2016-04-18 16:42:04 · 1398 阅读 · 0 评论 -
[mac]xcode配置说明--gtest&mysql
xcode配置本文介绍如何在mac上引入gtest和mysql两个工具。这是我最近做项目所需要的东西,研究了很久,最后终于解决了,在这里给大家介绍以下~gtest在Xcode上配置如下: 把gtest里面编译好的两个静态文件放在gtest文件夹里面。就可以进行gtest测试了:#include <stdio.h>#include "gtest/gtest.h"TEST(MyFirstTest,原创 2016-05-26 10:43:44 · 1238 阅读 · 0 评论 -
[C++]智能指针
详情见文: http://blog.youkuaiyun.com/hackbuteer1/article/details/7561235#include <iostream>using namespace std;class U_ptr {private: friend class HasPtr; int *ip; size_t use; U_ptr(int *p) :原创 2016-02-25 15:03:32 · 631 阅读 · 0 评论 -
[C++]详解异常处理(Exception Handling) 及标准库异常处理类
详解异常处理(Exception Handling) 及标准库异常处理类 异常处理,英文名为exceptional handling, 是代替日渐衰落的error code方法的新法,提供error code 所未能具体的优势。异常处理分离了接收和处理错误代码。这个功能理清了编程者的思绪,也帮助代码增强了可读性,方便了维护者的阅读和理解。 异常处理(又称为错误处理)功能提供了处理程序运行时出现的原创 2016-04-30 11:00:47 · 4112 阅读 · 0 评论