![](https://img-blog.csdnimg.cn/20200806122350842.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
C/C++相关
Legends_Never_Die
这个作者很懒,什么都没留下…
展开
-
目录及文件的递归输出
#include <stdio.h>#include <stdlib.h>#include<sys/types.h>#include<sys/stat.h>#include<dirent.h>#include<unistd.h>#include<string.h>int k=0;//当前层数voi原创 2018-10-22 19:49:47 · 150 阅读 · 0 评论 -
关于内部类注意点
1、C++类中还可以再定义内部类2、在内部类定义之前,如果外部类中的成员函数要使用内部类,则应在使用前声明内部类(外部类体的开头声明)3、外部类的成员函数和成员变量在内部类中不可使用...原创 2018-12-03 22:15:58 · 173 阅读 · 0 评论 -
关于引用
int f(int a){ return a;}int&f1(int &a1){ return a1;}int b=1;int main(){ int c; c=f(b); cout<<c<<endl; c=f1(b); cout<<c<<endl; ...原创 2018-12-31 13:22:41 · 135 阅读 · 0 评论 -
关于数组默认值的问题
1、全局int型数组若不对其初始化,默认值全为02、堆上的数组若不对其初始化,默认值是随机的(原来是什么还是什么)3、vector<int>v(5); 无论v在全局还是局部,5个值都为0 ...原创 2018-12-25 21:03:56 · 593 阅读 · 0 评论 -
关于优先级队列定义时的问题
优先级队列定义时,若采用自定义类型(例如:结构体类型),则必须在该结构体中重载<运算符,否则会编译器报错原创 2018-12-25 21:07:50 · 223 阅读 · 0 评论 -
重载提取和插入运算符
struct A{ int a; int b;};istream& operator>>(istream&in,A&k){ return in>>k.a>>k.b;}ostream& operator<<(ostream&os,A&k){ return o原创 2019-01-05 20:15:02 · 508 阅读 · 0 评论 -
关于定义vector参数问题
不可以vector<int,string>v;必须vector<pair<int,string> >v;放入时必须:v.push_back(make_pair(123,"123"));若有struct f{ int a;string b}k{123,"123"};不可以v.push_back(k);...原创 2019-01-06 23:25:18 · 278 阅读 · 0 评论 -
关于输入/出流迭代器
int main(){ istream_iterator<int>os(cin); //会等待输入数据 istream_iterator<int>end1; while(1) { cout<<*os<<endl; os++; if(os==end1) bre...原创 2019-01-07 15:10:10 · 214 阅读 · 0 评论 -
STL复习补充
1、关于vector的resize与reverseresize(m)若m<vector容量,则将size变为m,容器元素及capacity不变;否则,不但size变为m,capacity也将改变,大小不一定,但大于等于size,在原有容器元素后补0 vector<int>v; v.resize(5); //size==capacity==5 ...原创 2019-01-08 22:28:24 · 210 阅读 · 0 评论 -
十进制转换二进制
#include<iostream>#include<algorithm>#include<cstdlib>#include<cstring>#include<cstdio>using namespace std;int main(){ char num[100]; char res[100]; w...原创 2019-03-13 18:07:27 · 176 阅读 · 0 评论 -
基数排序
#include<iostream>#include<algorithm>#include<cstdlib>#include<bitset>#include<stack>#include<queue>#include<cstring>#include<iterator>#include...原创 2019-03-31 14:09:46 · 106 阅读 · 0 评论 -
方程根的三种近似求法(同济高数P177)
求方程x*x*x+1.1*x*x+0.9*x-1.4=0的近似根一、二分法using namespace std;double f(double x){ double k=x*x*x+1.1*x*x+0.9*x-1.4; return k;}int main(){ double left,right,mid; cin>>left>...原创 2019-04-12 21:38:04 · 1736 阅读 · 0 评论 -
关于函数重载
在同一个作用域中,如果有多个函数的名字相同,但是形参列表不同(参数类型不同或参数个数不同),返回值类型可同也可不同,我们称之为重载函数。函数重载与返回值类型无关。int f(int a){ return a;}void f(int b){ cout<<b;}using namespace std;int main(){ int a=1; ...原创 2018-09-30 13:20:16 · 145 阅读 · 0 评论 -
函数模板与普通函数
函数模板调用时可以不显示指定<类型>两者的调用机制:1、当只有函数模板时直接调用函数模板,以下四种方式均可 template<class T>T f(T );using namespace std;int main(){ double a=2.1; cout<<f<double>(a);//cout<&...原创 2018-09-30 13:13:23 · 154 阅读 · 0 评论 -
C++内存管理以及变量的作用域和生存期
操作系统为C++程序的运行所分配的内存空间为5个区域1,栈区:存放局部变量;分配栈区是不处理内存,即变量取随机值。(先进后出)2,堆区(自由存储区):存放与指针相关的动态数据;分配堆区时动态变量也取随机值3,全局数据区:存放全局数据和静态数据。分配该区时内存全部清0,结果变量的所有字节都自动初始化为04,文字常量区,里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且...原创 2018-06-01 17:09:13 · 277 阅读 · 0 评论 -
什么是栈帧
栈帧又叫活动记录,是内存中的一块记录单元,这块内存单元在栈上,用来存储每次函数调用所涉及的相关信息原创 2018-09-08 16:23:27 · 262 阅读 · 0 评论 -
C++编译中间过程
Linux下可以直接用gcc.exe/g++.exe(gcc的升级版)编译器在命令行模式下对C/C++源文件进行编译Windows以前版本下可直接用cl.exe在命令行模式下对C/C++源文件进行编译Mac下可用clang.exe在命令行模式下直接对C/C++源文件进行编译编译中间过程:.c/.cpp(源文件) -> .i(预处理文件) -> .s(汇编文件) -> ...原创 2018-09-03 20:25:50 · 755 阅读 · 0 评论 -
关于CodeBlocks&&Dev-C++&&Eclipse的多行注释
CodeBlocks 选中需要注释的行 Ctrl+Shift+C 取消注释 Ctrl+Shift+XDev-C++ 注释:Ctrl+. 取消注释:Ctrl+,VS 注释:Ctrl+K+C 取消注释:Ctrl+K+UEclipse 加/...原创 2018-09-18 22:59:55 · 503 阅读 · 0 评论 -
#pragma once 与 #ifndef
二者都是防止头文件被二次编译#ifndef 宏名#define 宏名语句块#endif上述代码含义:如果没有定义该宏则对中间的语句块进行编译第一条和第二条语句不能交换位置,否则语句块将不会被编译如果main.cpp文件中定义的宏名与该宏名相同且定义在引用该头文件之上,则该头文件也不会被编译...原创 2018-09-30 23:50:58 · 94 阅读 · 0 评论 -
关于main()返回值及参数
在windows和Linux下返回值为void会警告,但都能执行。mian()函数的两种标准原型:int main(void); int main(int argc,char *argv[]);argc表示被调用程序所带命令行参数数目;argv是一个指针数组,每个元素都是指向包含命令行参数的字符串的...原创 2018-09-26 12:54:08 · 223 阅读 · 0 评论 -
模板类中含有友元函数的书写规范
template <class T> class person; //模板类的声明template <class T>void show1(person<T>& ); //友元函数的声明template <class T>class person{public: T age; T g;public: ...原创 2018-10-02 20:36:28 · 286 阅读 · 0 评论 -
类的前向声明
class person;void show1(person &k){ cout<<k.age<<endl;}class person{public: int age; int g;public: person(int a,int b) { age=a; g=b; }...原创 2018-10-02 20:52:30 · 589 阅读 · 0 评论 -
关于头文件
#include<文件名> 系统直接到C语言库函数头文件所在目录中查找文件#include"文件名" 系统会现在源程序当前所在目录下查找,若找不到,再到path路径中查找,最后才到C语言库函数头文件所在目录中查找...原创 2018-09-26 23:01:56 · 134 阅读 · 0 评论 -
常量成员函数
在类的成员函数后可以加const,表示该函数不会修改成员变量的值(有时这个const是必须加的,不加编译器会报错)class Person{ int a; int b; public: void f(int& ,int&)const;};void Person::f(int &a1,int &b1)const{ ...原创 2018-10-14 23:01:11 · 161 阅读 · 0 评论 -
STL
1、bool comp(int&a,int& b){ return false;}int main(){ int a[5]={1,3,5,7,8}; sort(a,a+5,comp); for(int i=0;i<5;i++) { cout<<a[i]<<" "; } ...原创 2018-10-08 22:38:29 · 137 阅读 · 0 评论 -
strcpy()机制
int main(){ char a[]={'1','2','\0','5','6','\0'}; char b[6]; strcpy(b,a); cout<<b<<endl; return 0;}strcpy()函数当复制时遇到‘\0’就停止复制,在所复制的内容后加'\0'复制前:复制后:...原创 2018-09-30 11:50:58 · 497 阅读 · 0 评论 -
统计一个字符串中是否有同样的字符(bitset)
using namespace std;int main(){ bitset<256>b; string a; int i; while(cin>>a) { for(i=0;i<a.length();i++) { if(!b[(int)a[i]]) ...原创 2019-04-20 20:21:05 · 207 阅读 · 0 评论