※【c++】
无穷闪闪
每一个现在达不到的期许,都是你下一站努力的方向!
展开
-
搬砖问题 c++
题目内容:现有n块砖,要由n人一次搬完,假定男人一次可以搬4块,女人一次可以搬3块,两个小孩搬1块,计算这n人中男人、女人和小孩的人数。输入格式:表示人数的整型数输出格式:所有满足条件的男人、女人和孩子的人数或者提示信息“no result!”#include#includeusing namespace std;i原创 2017-09-21 00:32:34 · 9124 阅读 · 3 评论 -
虚继承
是面向对象编程中的一种技术,是指一个指定的基类,在继承体系结构中,将其成员数据实例共享给也从这个基类型直接或间接派生的其它类。原创 2014-10-15 17:48:41 · 536 阅读 · 0 评论 -
再谈动态联编
联编就是将模块或者函数合并在一起生成可执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。在编译阶段就将函数实现和函数调用关联起来称之为静态联编,静态联编在编译阶段就必须了解所有的函数或模块执行所需要检测的信息,它对函数的选择是基于指向对象的指针(或者引用)的类型。反之在程序执行的时转载 2014-10-18 11:22:05 · 969 阅读 · 0 评论 -
序列式容器vector和deque
#include #include #include using namespace std;void main(){ vector ivec;//定义一个容器 ivec.push_back(10);//向数组后面添加 ivec.push_back(20); ivec.push_back(30); ivec.push_back(40); i原创 2014-10-16 09:48:59 · 405 阅读 · 0 评论 -
虚析构函数
#include #include using namespace std;class Base{public: Base() { cout<<"Base的构造函数"<<endl; } virtual ~Base()//虚析构函数 { cout<<"Base的析构函数"<<endl; }};class S原创 2014-10-15 17:36:37 · 426 阅读 · 0 评论 -
脚本文件1
读取Test.txt文件内容:原创 2014-10-16 14:46:10 · 617 阅读 · 0 评论 -
脚本文件2
#include #include #include #include using namespace std;char tt[100];void GetChar (const char* buf,char* begin,char* end){ char* temp = new char[1000]; strcpy(temp,buf);//拷贝给temp w原创 2014-10-16 16:06:38 · 570 阅读 · 0 评论 -
多重继承
#include using namespace std;class A{public: virtual void go() { cout<<"A的go()"<<endl; }};class B:public A{public: void go() { cout<<"B的go()"<<endl; }}原创 2014-10-15 16:13:06 · 482 阅读 · 0 评论 -
嵌套类
作用域可以调用嵌套类原创 2014-10-14 23:12:59 · 406 阅读 · 0 评论 -
继承
#include using namespace std;//父类class Object{public: virtual void show() { cout<<"Object show"<<endl; }};//怪物类class Monster: public Object{ virtual void show() {原创 2014-10-15 16:03:43 · 398 阅读 · 0 评论 -
容器set
set容器对内部数据会自动排序;迭代器加const原创 2014-10-16 10:57:36 · 463 阅读 · 0 评论 -
迭代器
迭代器对所有的容器是通用的。#include #include #include #includeusing namespace std;#include class student{public: void showID() { cout<<m_ID<<endl; } student(char* name,int ID)//构原创 2014-10-16 10:43:28 · 512 阅读 · 0 评论 -
序列式容器List
lists 双向链表不提供随机存取(按顺序走到需存取的元素)原创 2014-10-16 10:08:00 · 459 阅读 · 0 评论 -
宏的举例
#include #include using namespace std;#define PI 3.141592657#define TEST "hello"#define MAX(a,b) (a>b?a:b)//宏函数#define MUL(a,b) (a*b)#define SafeDeleteArry(p) \ if(p != NULL)\ {原创 2014-10-15 18:16:36 · 544 阅读 · 0 评论 -
动态联编
#include #include using namespace std;class CBuilding//父类{//定义建筑类string name; //定义名称public: void set(string strName); //修改名称 virtual void display() //显示信息,这里是内联函数,而且声明为虚函数 { cou原创 2014-10-15 17:01:21 · 761 阅读 · 0 评论 -
子类和父类 构造函数和析构函数
#include using namespace std;//运算符的重载class Person//人{public: int a; Person() { cout<<"父类的不带参的构造函数调用"<<endl; } Person(int a) { cout<<"父类的带参数的构造函数调用"<<endl;原创 2014-10-15 14:54:00 · 1295 阅读 · 0 评论 -
运算符重载 加减乘除
#include using namespace std;//运算符的重载class A{public: A(int x) { a = x; } ~A() { } //运算符重载函数+=;加法 A operator +=(const A&b) { this->a = this->a+原创 2014-10-15 11:34:32 · 6307 阅读 · 1 评论 -
深拷贝和浅拷贝
一、默认拷贝构造函数 很多时候在我们都不知道拷贝构造函数的情况下,传递对象给函数参数或者函数返回对象都能很好的进行,这是因为编译器会给我们自动产生一个拷贝构造函数,这就是“默认拷贝构造函数”,这个构造函数很简单,仅仅使用“老对象”的数据成员的值对“新对象”的数据成员一一进行赋值,它一般具有以下形式:Rect::Rect(const Rect& r){ width = r.w转载 2014-10-14 22:56:33 · 478 阅读 · 0 评论 -
纯虚函数
#include #include using namespace std;class Base//纯虚函数,抽象类{public: virtual void go() = 0//纯虚函数 { cout<<"Base的go()"<<endl; }};class Sub : public Base//派生类{public: virtual原创 2014-10-15 17:21:43 · 573 阅读 · 0 评论 -
直线拟合之最小二乘法 Ax+By+C=0
最小二乘法拟合直线,对于大多数人都不是很陌生,直线方程 y=kx+b,令sum((y-kx-b)^2),分别对k和b求导便可求出最佳的参数,但是如果遇到诸如“X=5”这样的直线方程,又该如何呢?这时候就不再适用了,参考如下描述http://mathforum.org/library/drmath/view/51809.html,这样拟合出来的才是直线的一般方程。Let the line sou转载 2015-05-08 16:14:07 · 3195 阅读 · 1 评论 -
编写函数判断一个整数是否为素数
题目内容:编写函数int isprime(int a);用来判断整数a是否为素数,若是素数,函数返回1,否则返回0。调用该函数找出任意给定的n个整数中的素数。 注意,1不是素数。输入格式:一系列待判断的正整数,以空格隔开,以0表示输入结束。输出格式:只输出输入的正整数中的素数,顺序和输入一致。数据间以一个英文空格隔开,最后一个数据后没有空格!!! 注原创 2017-09-28 23:31:56 · 45445 阅读 · 1 评论 -
按点击率显示歌曲
题目内容:连续录入5首歌的歌名、歌手和点击率清单并按照点击率由高到低的顺序显示歌曲清单的信息。如果点击率相同,则按照录入的顺序显示。歌曲清单格式如下:曲名 演唱者 点击率输入格式:5个歌曲的清单,其中曲名(不会超过50个字符)、演唱者为字符串(不会超过20个字符),点击率为整型数输出格式:5个歌曲的清单(曲名、演唱者,点击率之间用一个英文空格原创 2017-09-24 16:00:16 · 1722 阅读 · 1 评论 -
指针删除后一定要将指针赋为0
#include //输入输出流using namespace std;int main(){ int *p=new int;//新建的内存区域中 *p=3; cout<<"将3赋给p的地址后,指针p读取的值:"<<*p<<endl; delete p;//删除p指向的空间 p=0;//一定要将指针赋为空 //cout<<"删除空间后,指针p读取的值:"<<*p<<endl;原创 2017-04-14 21:01:22 · 547 阅读 · 0 评论 -
指针的赋值运算
/*指针的赋值运算:将p1的值和地址赋给p*/#include //输入输出流using namespace std;int main (){ int *p=new int; cout<<"p:"<<p<<endl; int *p1=new int; *p1=3; cout<<"p1:"<<p1<<endl; p=p1; cout<<"赋值后p:"<<endl; cout<原创 2017-04-14 21:00:49 · 970 阅读 · 0 评论 -
this指针
#include //输入输出流using namespace std;class A{public: int get() const {return i;} void set(int x){this->i=x;//this指针访问,可以省略掉this-> cout<<"this变量保存的内存地址:"<<this<<endl;}private: int i;};int mai原创 2017-04-14 20:59:17 · 290 阅读 · 0 评论 -
linux下getchar()举例
#include #include intmain(void) { char ch; printf("Input a char:"); ch = getchar(); printf("\nYou input a %c\n", ch); return 0; }原创 2017-04-14 20:58:41 · 1711 阅读 · 0 评论 -
键盘操作
#include //输入输出流#include #include //#include //字符处理#include //Windows库函数using namespace std;int main(){char c = _getch();if(c==-32) c=_getch(); switch(c) { case 75: {printf("左");bre原创 2017-04-14 20:57:52 · 305 阅读 · 0 评论 -
for 对vector类型进行循环输出
#include using namespace std;int main(void){ vector svec; svec.push_back("I"); svec.push_back("LOVE"); svec.push_back("C++"); for (vector::size_type ind = 0;ind != svec.siz原创 2017-04-19 00:07:34 · 4728 阅读 · 0 评论 -
while 动态创建对象
#include using namespace std;int main(void){int arr1[5] = {1,2,3,4,5};int *source = arr1;size_t sz = sizeof(arr1)/sizeof(*arr1); // number of elementsint *dest = new int[sz]; // uninitialized e原创 2017-04-18 23:59:31 · 429 阅读 · 0 评论 -
strcat标准库函数
#include #include //标准库函数的头文件using namespace std;int main(){ char str4[] = "Hello world"; char str5[] = "Hello boy";cout<<strlen(str4)<<endl;cout<<strlen(str5)<<endl; cout << strcat(str4,str5原创 2017-04-14 20:57:07 · 556 阅读 · 0 评论 -
stringstream的用法
stringstream通常是用来做数据转换的。相比c库的转换,它更加安全,自动和直接。 例子一:基本数据类型转换例子 int转string#include #include #include int main(){ std::stringstream stream; std::string result; int i = 1000;原创 2017-04-14 20:56:07 · 513 阅读 · 0 评论 -
在构造函数中开辟内存空间
#include using namespace std;class human{public:#include using namespace std;class human{public: int get()const{return *i;} void set(int x) { *i=x; } ~human(); human();private :原创 2017-04-14 20:54:14 · 1620 阅读 · 0 评论 -
访问堆中的数据成员-成员指针
#include using namespace std;class human{public: int get()const{return i;} void set(int x) { i=x; }private : int i;};int main(){ human *p =new human;//堆中创建对象 (*p).set(1);//p->set(原创 2017-04-14 20:53:15 · 365 阅读 · 0 评论 -
堆中创建对象/删除对象-析构函数
#include using namespace std;class human{public:human(){cout<<"构造函数执行"<<endl;}~human(){cout<<"析构函数执行"<<endl;}};int main(){human *p =new human;//堆中创建对象delete p;//删除的是对象return 0;}原创 2017-04-14 20:52:24 · 840 阅读 · 0 评论 -
堆的内存空间创建与释放
#include using namespace std;int main(){ int *p=new int;//堆的内存空间创建 *p=4; cout<<*p<<endl; delete p;//释放内存空间,而不会释放指针 cout<<*p<<endl; p=0; p=new int; *p=5; cout<<*p<<endl; return 0;}原创 2017-04-14 20:51:37 · 889 阅读 · 0 评论 -
C中strtok()函数和strtok_r()函数
1.函数名:strtok功能:查找由第二个串指定的分界符分开的单词用法:char *strtok(char *str1, char *str2)一个例子: #include #include #include int main() { char inpu转载 2016-09-28 22:06:28 · 926 阅读 · 0 评论 -
gcvt 把浮点数转成字符串
函数名: gcvt用 法: char *gcvt(double value, int ndigit, char *buf);包含头文件:参数value——被转换的值。Digits——存储的有效数字位数。Buffe——结果的存储位置。返回值返回一个指向结果的存储位置的指针#include #include #include using namespace原创 2016-10-11 20:25:47 · 2158 阅读 · 0 评论 -
函数模板
#includeusing namespace std;templateint compare(const T &v1, const T &v2){ if (v1<v2) return -1; if (v1>v2) return 1; return 0;}void main(){ cout<<compare(1,0)<<endl;}原创 2014-10-11 18:24:16 · 371 阅读 · 0 评论 -
虚函数C++中的虚函数的作用主要是实现了多态的机制
C++中的虚函数的作用主要是实现了多态的机制原创 2014-10-15 15:37:44 · 1271 阅读 · 0 评论 -
结构指针型函数
#include #includeusing namespace std;struct sample{ int num; char color; char type;}car[] = {101,'G','c',201,'Y','m',105,'R','i',222,'B','s',308,'P','b',0,0,0};struct sample *find(i原创 2014-10-13 10:11:40 · 554 阅读 · 0 评论