![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
利村村长
这个作者很懒,什么都没留下…
展开
-
ACM1001:Sum Problem
#includeusing namespace std;int main(){ int a,tmp,sum; while(cin>>a){ sum=0; for(tmp=1;tmp<=a;tmp++){ sum+=tmp; } cout<<sum<<endl; cout<<""<<endl; } return 0;}原创 2015-08-04 14:16:48 · 256 阅读 · 0 评论 -
Ubuntu下配置VScode的C++编程环境
Ubuntu下配置VS code的C++编程环境1、安装VScode直接从官网下载源码包,解压后即可使用2、安装必要的开发环境包括:gcc、g++、gdb、build-essential、Clang3、安装必要插件目前安装的插件如下: 1. C/C++ 2. C/C++ Clang Command Adapter 3. C++ Intellisense 4. ClangComplete 5原创 2017-08-23 23:00:29 · 8251 阅读 · 0 评论 -
Linux下给进程重命名
系统提供函数prctl():#include int prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5);使用例子:prctl(PR_SET_NAME, “process_name”, NULL, NULL, NULL);不过这个函数更原创 2016-08-23 17:07:23 · 2834 阅读 · 1 评论 -
二叉树遍历的递归和非递归实现
LeetCode上有三题是直接分别对应二叉树的非递归遍历实现:144/94/145前序遍历:非递归和递归的方式差不多,主要是要注意左右子节点的入栈顺序和递归时恰好相反/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * Tree原创 2016-08-09 21:19:59 · 345 阅读 · 0 评论 -
实现字符串拷贝strcpy和memcpy,以及字符串比较函数strcmp
这些函数是很容易出现在面试笔试中的,需要牢记,其实也是很容易实现的,只不过要考虑周全,注意异常情况判断。/**实现字符串拷贝*为什么要返回char*?(为了支持链式表达式,如strlen(strcpy(p,q)求复制后的长度))*/char* strcpy(char* strDest,const char* strSrc){ if(strDest==NULL||strSrc==原创 2016-08-28 22:42:51 · 2251 阅读 · 0 评论 -
More Effective C++读书小记
1、仔细区别pointer和references 不论pointer或是references都使你间接参考其它对象。 没有所谓的null reference。一个reference必须总代表某个对象。 如果你有一个变量,其目的是用来指向(代表)另一个对象,但是也有可能它不指向(代表)任何对象,那么你应该使用pointer,因为你可以将指针设为null。换个角度原创 2016-07-18 17:01:25 · 1273 阅读 · 0 评论 -
C++实现一个不能被继承的类
要设计一个不能被继承的类,考虑C++11的新特性的话,有三种方法:(1)就是将该类的构造函数和析构函数设为private(或者仅仅将析构函数设为private),这样派生类无法调用基类的构造函数和析构函数,从而不能继承。要创建对象,可以在该类中设一个static成员函数,提供返回一个该类对象指针,这种方法比较普遍就不细说。需要注意的是这种方法导致对象只能在heap中产生。那如何能构造一个正常对原创 2016-07-17 22:03:22 · 368 阅读 · 0 评论 -
C++常考面试题
1、static关键字的作用(改变生命周期或者改变作用域)(1)static变量只会初始化一次,存储在静态数据区,具有记忆功能,默认初始化为0;(2)类的静态成员变量属于本类中的所有对象共享,不属于特定的类对象,由该类型的所有对象共享访问,只能在类外初始化;(3)类的静态成员函数也是属于整个类,而非类的对象,不接收this指针,因而只能访问类的静态成员变量;(4)模块内的静态全局变原创 2016-04-21 10:49:53 · 1621 阅读 · 0 评论 -
ACM1064:
关键是控制浮点数小数点后数字的输出#include#includeusing namespace std;int main(){ float a=0,b=0; for (int i = 0; i < 12; i++) { cin>>a; b+=a; } b=b/12; cout<<"$"; cout <<setiosflags(ios::fixed); c原创 2015-08-06 14:58:21 · 335 阅读 · 0 评论 -
ACM1008:Elevator
容易犯的错误就是相邻两数为统一楼层时,应该+5,而不是+0!#includeusing namespace std;int main(){ int N,data[101]={0},sum; while(cin>>N){ if(N==0){ break; } sum=0; memset(data,0,sizeof(data)); for (int i原创 2015-08-05 23:48:15 · 251 阅读 · 0 评论 -
Effective C++读书小记
1、视C++为一个语言联邦 对于内置类型而言,pass-by-value通常比pass-by-reference高效。()内置类型在按值传参时,只是将变量的值传递到栈上。 然后被调用函数将值取出后,使用即可。在按引用传参时,需要将被引用的变量的地址压栈, 然后被调用函数首先取出地址,然后再次根据地址寻址获取值。) C++可分为四个部分:(1)C;(2)Objected-Or原创 2016-07-08 12:59:46 · 1276 阅读 · 0 评论 -
单例模式(C++)
单例模式(Singleton),是保证一个类仅有一个实例,并提供一个访问它的全局访问点。class Singleton{private: Singleton(){};public: static Singleton *instance; static Singleton *GetInstance();};Singleton *Singleton::instance=NULL;原创 2016-03-28 18:39:21 · 240 阅读 · 0 评论 -
常用排序算法实现(C++)
/*排序算法*/#includeusing namespace std;/*交换函数*/void swap(int &a,int &b){ int temp=a; a=b; b=temp;}/*冒泡排序*/void BubbleSort(int* a ,int length){ int i,j; for(i=0;i<length-1;++i) { for(j=l原创 2016-04-08 17:03:00 · 306 阅读 · 0 评论 -
最大公约数、最小公倍数
求最大公约数,用到了辗转相除法,详情可以了解一下欧几里德算法。//最大公约数 m<=nint gcd(int m,int n){ return m==0?n:gcd(n%m,m);}最小公倍数要用到最大公约数//最小公倍数int lcm(int m,int n){ int k=gcd(min(m,n),max(m,n)); //最大公约数 return m/k*n;}原创 2015-11-27 15:58:44 · 396 阅读 · 0 评论 -
希尔排序
希尔排序是特殊的插入排序,也可以说插入排序是特殊的希尔排序,步长为1.这里就不细讲希尔排序的过程,直接给出C++代码吧。class ShellSort {public: int* shellSort(int* A, int n) { int i,j,temp; int d=n/2; while(d>0){ for原创 2015-11-04 11:16:31 · 284 阅读 · 0 评论 -
ACM1089:A+B for Input-Output Practice (I)
用字符串截取转整形,总是不能AC#includeusing namespace std;int main(){ int a=0,b=0; while (cin>>a>>b) { cout<<a+b<<endl; } return 0;}原创 2015-08-05 14:21:59 · 320 阅读 · 0 评论 -
acm1000:A + B Problem
新学习c++,做acm联系,在这做一下记录,新手,代码可能质量不高。#include#include//using std::cin;//using std::cout;//using std::endl;//using std::string;using namespace std;int main(){ int a=0;int b=0; int index=0;原创 2015-08-04 13:49:41 · 236 阅读 · 0 评论 -
C++11 线程池实现
C++11中已经添加了跨平台的thread相关工具,在一些轻量级使用场景中,使用std::thread无疑会给我们带来很多方便。这里使用它实现了一个简单的线程池:EasyThreadPool.h#ifndef _EASY_THREAD_POOL_H_#define _EASY_THREAD_POOL_H_#include <thread>#include <mu...原创 2018-03-25 18:35:01 · 701 阅读 · 0 评论