【有趣的C/C++问题】教程文章相关的互联网学习教程文章

c++ stl中集合(set)的使用

set是关联式容器,有自动去重和排序的功能。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。begin()    ,返回set容器的第一个元素end()      ,返回set容器的最后一个元素clear()    ,删除set容器中的所有的元素empty()    ,判断set容器是...

Effective C++:条款12:复制对象时勿忘其每一个成分

(一)一个继承体系的声明:class Date {...}; class Customer { public:... private:string name;Date lastTransaction; };class PriorityCustomer : public Customer { public:PriorityCustomer(const PriorityCustomer& rhs);PriorityCustomer& operator=(const PriorityCustomer& rhs); private:int priority; };任何时候只要我们承担起“为derived class撰写copying函数”的重责大任,必须很小心的也复制其base class成分。但...

学习记录--C++继承与派生编程题【代码】【图】

1.设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生出来的要求输出一个圆桌的高度,面积与颜色等。#include<iostream> #include<string> usingnamespace std; #define PI 3.14; class circle { public:circle(){//默认构造函数 }void setR(double r){m_r = r;}double getR(){return m_r;}double getArea(){double area;area = m_r *m_r * PI;return area;} protected:double m_r;//圆的半...

C++虚表

对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的。简称为V-Table。在这个表中,主是要一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其容真实反应实际的函数。这样,在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以,当我们用父类的指针来操作一个子类的时候,这张虚函数表就显得由为重要了,它就像一个地图一样,指明了实际所应该调用的函数。 cla...

c++之运算符

运算符分为:算数运算符、赋值运算符、比较运算符、逻辑运算符算数运算符:+(正) -(负) + - * / % i++(先赋值后自增) ++i(先自增后赋值) i--(先赋值后自减) --i(先自减后赋值)赋值运算符:= += -= *= /= %=比较运算符:== != < > <= >=逻辑运算符:!(非) &&(与) ||(或)原文:https://www.cnblogs.com/xiximayou/p/12079565.html

C++求两个数的最大值【代码】

//不使用if,:?等推断语句。求两个数字中最大的那个数字。#include<iostream> using namespace std;int main() {int a = - 10;int b = - 100;int c = (a + b + abs(a - b))/ 2;//abs(x)是求绝对值的函数,a+b+(a与b的差值)就是最大数的两倍,再除以2即为最大数。 cout << c << endl;return 0; } #include <iostream>usingnamespacestd; int main() {int a = 10;int b = 100;int c = a - b;//int sr[] = { a, b };int i = unsi...

C++输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,

//输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字, //例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 //则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. #include <iostream> using namespace std; void Grial(int (*a)[5],int n) {int a1 = 0;int b1 = n-1;bool visted[n][n];for(int k=0;k<n;k++){for(int m=0;m<n;m++){visted[k][m]=false;}}int i=0;int j=0;while(1){for(i=a1...

C++结构体【代码】

结构体是用户定义的类型,而结构声明定义了这种类型的数据属性。1struct inflatable // structure declaration2{ 3char name[20]; 4float volume; 5double price; 6 };关键字 struct 表明,这些代码定义的是一个结构体的布局。标识符 inflatable 是这种数据格式的名称,因此新类型的名称为 inflatable。这样,便可以像创建 char 或 int 类型的变量那样创建 inflatable 类型的变量类。struct inflatable goose; // keyword struct ...

Socket通信原理探讨(C++为例)【代码】【图】

一、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:1、消息传递(管道、FIFO、消息队列)2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)3、共享内存(匿名的和具名的)4、远程过程调用(Solaris门和Sun RPC) 但这些都不是本文的主题!我们要讨论的是网络中进程之间如何通信?首要解决的问题是如何唯一标识一个进程,否则通信无从谈起!在本地可以通过进程PID来唯一...

C/C++ New与Delete (小例子)【代码】

转自:http://blog.csdn.net/chenzujie/article/details/7011639 先来看两段小程序: 1)、 #include <iostream.h> #include <String.h> void main(void) { char *str1 = "just have fun"; char *str2 = "happy day"; char *sTmpPtr = newchar[255]; char *sMyStrPtr = newchar[255];strcpy(sTmpPtr, str1); strcpy(sMyStrPtr, str2); delete sMyStrPtr ; strcpy(sMyStrPtr, sTmpPtr); cout << sMyStrPtr << endl; } 2)、 #incl...

转载:C++中两个类中互相包含对方对象的指针问题【代码】【图】

原文链接:http://www.cnblogs.com/hanxi/archive/2012/07/25/2608068.html  前几天很不爽,因为C++中两个类中互相包含对方对象的指针编译时提示某一个类未定义。。。所以我就想啊想,这样也对,我的头文件都有#ifndef的,包含了一次就不能再包含了,以为就实现不了这样的功能,于是就改了设计方案:class A { public:A(B* pB):m_pB(pB){}private:B* m_pB; };class B { public:B() {} private:int m_i; };只在一个类中包含另一个...

c/c++

常见的数据类型,bit,byte,char,short,int,long,float,double,BYTE,WORD,DWORD,数组,指针,引用,对象常见的操作符,<<,>>,=,++,new,delete;面向对象的特性,封装(class、function),继承(public、protected、private),多态(virtual);具有重要意义的修饰符,const ,static,external;内存的存储空间结构;原文:https://www.cnblogs.com/cui-shaoqiang/p/9088934.html

c++实现插入排序算法【代码】

#include <iostream> usingnamespace std;//插入排序法void insertSortMethod(int intArr[],int arrLen); void printArrInfo(int intArr[],int arrLen); int main() {int arr[] = { 1,3,5,2,4,7,9,6,8 };int len = sizeof(arr) / sizeof(int);insertSortMethod(arr,len);printArrInfo(arr,len);system("pause");return0; } //插入排序法void insertSortMethod(int intArr[],int arrLen) {int start = 0;for (int i = 0; i < arrLen...

C++获取当前时间和计算程序运行时间的方法【代码】

C++获取当前时间和计算程序运行时间的方法 获取当前时间: #include <iostream> #include <Windows.h> using namespace std; int main() { SYSTEMTIME sys; GetLocalTime(&sys); cout<<sys.wYear<<"年"; cout<<sys.wMonth<<"月"; cout<<sys.wDay<<"日"; cout<<sys.wHour<<"时"; cout<<sys.wMinute<<"分"; cout<<sys.wSecond<<"秒"; cout<<sys.wMilliseconds<<"毫秒"; cout<<",星期"<<sys.wDayO...

C++ const关键字【代码】【图】

关于顶层const 底层constconst与指针配合使用有两种作用,一是限制指针变量,二是限制指针变量指向的数据限制指针变量本身1 int * const p2;//const修饰的是指针变量限制指针变量本身的意思是,指针变量本身的值不能被修改,所以被 const 修饰的指针变量指针只能在定义时初始化,不能定义之后再赋值,错误代码如下限制指针变量指向的数据1 const int *p1; 2 int const *p1;上面两种写法都可以,一般使用第一种,限制指针变量指向的...