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

C++的强制转换方式(转)

C 风格(C-style)强制转型如下:(T) expression 或T(expression) //函数风格(Function-style)两种形式之间没有本质上的不同。对于具有转换的简单类型而言C 风格转型工作得很好。然而,这样的转换符也能不分皂白地应用于类(class)和类的指针。ANSI-C++标准定义了四个新的转换符:reinterpret_cast, static_cast, dynamic_cast和const_cast,目的在于控制类(class)之间的类型转换。1.1 reinpreter_cast用法:reinpreter_...

C++中返回值【代码】

函数的返回值用于初始化在调用函数是创建的临时对象。1、返回值为非引用类型: 会将函数的返回值复制给临时对象。跟实参初始化形参的方式一样。2、返回值为引用类型: 没有复制返回值,返回的是对象本身。返回引用时,在函数的参数中要有以引用方式或指针方式传入的要返回的参数 不能返回局部对象的引用。(因为函数执行结束,将释放分配给局部对象的存储空间,对局部对象的引用就会指向不确定的内存) int& abc(i...

c++中map按key和value排序【代码】

1```2 #include<iostream>3 #include<algorithm>4 #include<vector>5 #include<map>6 #include<set>7usingnamespace std;8 9/*按key升序*/10void test01(){ 11 map<string,int,less<string> > map1; 12 map1.insert(pair<string,int>("aba",3)); 13 map1.insert(pair<string,int>("aaa",2)); 14 map1.insert(pair<string,int>("ddd",1)); 15 map1.insert(pair<string,int>("ccc",4)); 1617for(map<string,int>...

Windows下利用Cygwin搭建C/C++开发环境GCC【代码】【图】

1.下载cygwin 下载地址:http://www.cygwin.com/ 2.下载完成后点击运行 3.选择镜像时可以选择添加清华镜像,在”User URL”处输入以下地址:https://mirrors.tuna.tsinghua.edu.cn/cygwin/点击”Add”按钮, 然后选中”https://mirrors.tuna.tsinghua.edu.cn”, 点击”下一步”进行安装。4.在这个页面之后,就是最重要的一个地方了,会自动进入下一步。 5.在画红线处分别搜索 gcc-core、gcc-g++、make、gdb、binutils,以上所有项目...

C++11学习【图】

C++11学习本章目的:当Android用ART虚拟机替代Dalvik的时候,为了表示和Dalvik彻底划清界限的决心,Google连ART虚拟机的实现代码都切换到了C++11。C+11的标准规范于2011年2月正式落稿,而此前10余年间,C++正式标准一直是C++98/03[①]。相比C++98/03,C++11有了非常多的变化,甚至一度让笔者大呼不认识C++了[②]。不过,作为科技行业的从业者,我们要铭记在心的一个铁规就是要拥抱变化。既然我们不认识C++11,那就把它当做一门全新...

C++中枚举定义运算符【代码】

由于枚举也是用户定义类型,所以是可以定义运算符, 如:1enum Day {sun, mon, tue, wen, thu, fri, sat}; 23 Day& operator++(Day& d) 4{ 5return d = (sat == d) ? sun : Day(sta + 1); 6 }可以这样来使用:Day today = sun; ++today; // mon 原文:http://www.cnblogs.com/furzoom/p/4620944.html

c语言走向c++的第一步,注释转换

最近刚开始学习c++,接触了一个小项目,写一个程序将C语言的注释转化为c++的注释,这个里面也要分很多种情况,下面我就把我做的小程序分享出来,在把C语言注释转化为c++注释的过程中,列举了以下几种情况1.普通情况/*int i = 0;2.换行问题/*int i = 0;*/int j = 0;/*int i = 0;*/int j = 0; 3.匹配问题/*int i = 0;/*xxxxx*/ 4.多行注释/*int i = 0; int j = 0; int k = 0; */int k = 0;5.连续注释/**//**/6.连续的**/问题 /***/ 7...

c++ exports def文件【代码】

https://msdn.microsoft.com/zh-cn/library/hyx1zcd3(v=vs.80).aspxEXPORTS引入了一个由一个或多个 definitions(导出的函数或数据)组成的节。每个定义必须在单独一行上。EXPORTS definitions 备注EXPORTS 关键字可以在第一个定义所在的同一行或前一行上。.def 文件可以包含一个或多个 EXPORTS 语句。 导出 definitions 的语法为: entryname[=internalname] [@ordinal [NONAME]] [PRIVATE] [DATA] entryname 是要导出的...

opencv C++全局直方图均衡化【代码】【图】

cv::Mat histogramEqualization(cv::Mat img){int rows=img.rows;int cols=img.cols;cv::Mat grayScale=cv::Mat::zeros(cv::Size(256,1),CV_32SC1);cv::Mat grayScaleSum=cv::Mat::zeros(cv::Size(256,1),CV_32SC1);cv::Mat _output=cv::Mat::zeros(cv::Size(256,1),CV_8UC1);cv::Mat output=cv::Mat::zeros(img.size(),CV_8UC1);float cofficient=256.0/(rows*cols);for(int i=0;i<rows;++i){ // 计算不同灰度值的个数。for(int ...

C++正则表达式笔记之wregex【代码】

遍历所有匹配#include <iostream> #include <regex> usingnamespace std; int main() {wstring wstr = L"我是1994年出生的,我今年25岁了。";wsmatch wsm;wregex wre(L"[0-9]+");wsregex_iterator itr1(wstr.begin(), wstr.end(), wre);wsregex_iterator itr2;for (wsregex_iterator itr = itr1; itr != itr2; ++itr){wcout << itr->str() << endl;}return0; }在目标文本中进行搜索#include <iostream> #include <regex> usingname...

4.2 C++虚成员函数【代码】

参考:http://www.weixueyuan.net/view/6371.html总结:  virtual关键字仅用于函数声明,如果函数是在类外定义,则不需要再加上virtual关键字了。  在C++中只有类中的成员函数能被声明为虚函数,而对于顶层函数则不能声明为虚函数。    声明虚函数是为了构成多态。  实际上我们只需要将基类中的display函数通过virtual关键字声明为虚函数,之后即使在派生类中display函数声明时未加上virtual关键字,它在所有的派生类中都...

C++随机数【代码】【图】

假如我们要给小朋友出100以内减法题,而且我们希望每次运行的减法都不一样(不能永远是9-2=?),那么我们该怎么办呢?  这里我们需要用到随机数,每次出的题中,减数与被减数是两个随机数,这样就可以避免只做一道题。  随机数要用头文件<cstdlib>中的rand()函数来生成,生成的随机数在0~RAND_MAX之间,RAND_MAX是由平台决定的。  看下面一段代码: 1 #include <iostream>2 #include<cstdlib>3 4usingnamespace std;5 6int ...

c++ const char *[] or char [][]【代码】

char ch1[][6]={"hello","world"}; char *ch2[6]={"hello"}; std::cout<<sizeof(ch2)<<" : "<<strlen(*ch2)<<"\n"; //sizeof(char*) : 5 std::cout<<sizeof(ch1)<<" : "<<strlen(*ch1)<<"\n"; //12 : 5到刚刚为止,一直以为这两个是等价的。打脸了。。。其实我想说的是第二个编译也过不了。。。char *ch2[] 首先是ch2是一个数组,数组里面是指向const字符串的指针。所以必须是这样的形式 const char *ch2[]; perfect原文:http://w...

C++结构体再学心得

自己定义一个结构体,使用struct关键字struct student{  char name[20];  int age;  int num;};定义好结构体,student就相当于变量类型,我们可以直接用来定义一个student类型的变量:student A;也可以直接在定义结构体的时候直接进行定义变量:struct student{  char name[20];  int age;  int num;}A;这个结构体可以通过sizeof(student)来获得变量类型所占用的诶村大小结构体成员的引用形式:结构变量名.成员名,例如...

C++文件操作案例

案例一: 1.打开文件,显示其中内容 2.向其中追加记录 3.显示追加之后的文件内容 #include<iostream> #include<fstream> #include<iomanip> #include<stdlib.h> using namespace std; inline void eatline() { while (std::cin.get() != ‘\n‘)continue; } struct planet { char name[20]; double population; double g; ...