c++
文章平均质量分 69
小拳头
“女生,平时要好好护肤,保持身材,多看书,多旅行,有自己的想法,去做自己喜欢的事,培养自信。不要把精力全部用在一个男人身上,成天胡思乱想,像个怨妇,等你变得更好的时候,你会发现所有的事情都会变得很容易了,包括爱情”
展开
-
c++从int转string、char的方法总结
一、int to string(整型到字符串)(1)函数:int sprintf(char *buffer, const char *format [, argument] ...);头文件:#include例子:#include#includeusing namespace std;int main(){ int ss; char temp[64];原创 2016-06-23 20:50:33 · 35418 阅读 · 3 评论 -
c++进制转化及输出精度问题总结
一、十进制转二进制//十进制转二进制stringten_to_two(const unsigned int val){ string res=""; for(int i=16;i>-0;i--){ if(val & (1<<i)) res += "1"; else res += "0";原创 2017-04-04 11:19:51 · 1084 阅读 · 0 评论 -
KMP算法c++实现
一、原理看下面视频http://baidu.ku6.com/watch/1196605033445674118.html?page=videoMultiNeed二、c++代码:#include#include#include#includeusing namespace std;void get_next(string s1, int next[]){原创 2017-03-16 21:44:28 · 1256 阅读 · 0 评论 -
c++短路求值
该问题来源于剑指offer上一道题,题目描述如下:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C) 一开始看到这道题很懵,看了一下讨论区学到了一个新词:短路求值。下面来看看到底短路求值是什么意思。c++中可以使用逻辑操作(与、或)来实现短路求值。1、逻辑或的短路代码如下:#inc原创 2017-04-30 15:58:18 · 4271 阅读 · 2 评论 -
c++ STL的list用法总结
头文件#include 声明一个int型的list:list a;1、list的构造函数lista{1,2,3}lista(n) //声明一个n个元素的列表,每个元素都是0lista(n, m) //声明一个n个元素的列表,每个元素都是mlista(first, last) //声明一个列表,其元素的初始值来源于由区间所指定的序列中的元素,first和last是原创 2017-04-21 22:02:50 · 50426 阅读 · 8 评论 -
排序算法总结
一、插入排序原理:从第二个元素开始和之前的元素一个一个进行比较,如果比前面的元素小就与之交换,大于等于则继续下一个数的循环。稳定性:稳定时间代价:o(n*n)最好—正序—时间代价o(n)最差—倒序—时间代价o(n*n)平均—乱序—时间代价o(n*n)辅助存储空间:o(1)总结:插入排序的时间复杂度最好的情况是已经是正序的序列,只需比较(n-1)次,时间复杂度为o(n原创 2017-02-06 16:15:21 · 747 阅读 · 0 评论 -
c语言结构体的位域相关知识
发现这个问题,源于牛客网上一道题,原题如下:struct s{ int x:3; int y:4; int z:5; double a;};求sizeof(s)A、16 B、32 C、20 D、24 一开始认为只是简单的sizeof类型的题,对于64位机器,int占4个字节,double占8个字节,因此按照对齐原则原创 2017-06-08 15:19:22 · 623 阅读 · 0 评论 -
c++实现单例模式
一、定义这种模式设计到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。总结为三点:(1)单例类只能有一个实例(2)单例类必须自己创建自己的唯一实例(3)单例类必须给所有其他对象提供这一实例 目的:保证一个类仅有一个实例,并提供一个访问它的全局访问点主要解决:一个全局使用的类原创 2017-07-29 16:34:10 · 420 阅读 · 0 评论 -
c++实现装饰器模式
一、定义装饰器模式(DecoratorPattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。 使用情况:如果需要添加新功能,但又不想修改定义好的接口或者抽象类,此时适合用装饰模式。 应用场景举例:例如对于一个蛋糕Cake类,一开始是一个原始蛋糕模型,后面需要给蛋糕加工—加上奶油,加上巧克力,加上瓜子仁,加上水果,写上字等。等同于将原始蛋糕作为一个Cake类,我们原创 2017-07-30 15:37:44 · 3663 阅读 · 1 评论 -
c++ vector, set, map的用法总结
一、vector 向量容器(1)头文件 #include(2)创建vector对象, vector vec;vector的元素不仅仅可以是int, double, string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。(3)基本操作:cout使用下标访问元素,和数组一样下标从0原创 2016-06-03 15:16:51 · 14687 阅读 · 1 评论 -
windows环境下用c++实现socket编程
一、什么是Socketsocket即套接字,用于描述地址和端口,是一个通信链的句柄。应用程序通过socket向网络发出请求或者回应。sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);前两种较常用。基于TCP的socket编程是采用的流式套接字。(1)SOCK_STREAM表示面向连接的原创 2017-02-27 16:29:42 · 136225 阅读 · 76 评论 -
关于c++中不允许复制构造函数传值参数的理解
问题源于看剑指offer上的一道面试题,题目如下:class A{private: int value;public: A(int n){ value = n; } A(A other){ value = other.value; } void Print() {cout<<value<<endl; }};int main(void){ A a原创 2017-04-12 17:27:23 · 7097 阅读 · 11 评论 -
STL bitset用法总结
一、头文件#include二、初始化bitset对象bitset b; //b有n位,每位都为0bitset b(u); //b是unsigned long型u的一个副本bitset b(s); //b是string对象s中含有的位串的副本bitset b(s, pos, n); //b是s中位置pos开始的n个位的副本例子:(1原创 2017-03-30 17:35:29 · 887 阅读 · 0 评论 -
devc++下使用c语言访问mysql数据库
一、环境配置1、windows7系统2、mysql3、devc++ 5.3.0.34、安装MySQL.DevPak,下载地址:http://downloads.sourceforge.net/dev-cpp/MySQL.DevPak下载后双击安装, 安装完成后“工具->packagemanager”下会出现“MySQL”单击“工具->编译选项->编译器->在连接器命原创 2017-03-21 16:39:09 · 8857 阅读 · 3 评论 -
nth_element()方法总结
一、函数参数nth_element(first, nth, last, compare)求[first, last]这个区间中第n大小的元素,如果参数加入了compare函数,就按compare函数的方式比较。二、头文件#include三、作用nth_element仅排序第n个元素(从0开始索引),即将位置n(从0开始)的元素放在第n大的位置,处理完之后原创 2016-06-05 20:28:11 · 12431 阅读 · 5 评论 -
c++ auto类型用法总结
一、用途auto是c++程序设计语言的关键字。用于两种情况(1)声明变量时根据初始化表达式自动推断该变量的类型(2)声明函数时函数返回值的占位符二、简要理解auto可以在声明变量时根据变量初始值的类型自动为此变量选择匹配的类型。举例:对于值x=1;既可以声明: int x=1 或 long x=1,也可以直接声明 auto x=1三、用法原创 2016-06-12 17:37:50 · 94036 阅读 · 4 评论 -
c++ STL学习之stack堆栈总结
一、头文件# include二、定义堆栈是一个线性表,插入和删除只在表的一端进行。这一端称为栈顶,另一端称为栈底。堆栈的元素插入称为入栈,元素的删除则为出栈。堆栈是一个后进先出表。三、用法(1)创建一个空的stack对象stack s;(2)元素入栈void push(const value_type& x)在栈顶添加元素原创 2016-06-15 15:04:06 · 6114 阅读 · 0 评论 -
【c++】STL里的priority_queue用法总结
1、头文件#include2、定义priority_queue p;3、优先输出大数据priority_queueType为数据类型, Container为保存数据的容器,Functional为元素比较方式。如果不写后两个参数,那么容器默认用的是vector,比较方式默认用operator例如:#include#includeusin原创 2016-07-24 20:39:36 · 87298 阅读 · 13 评论 -
c++ STL学习之queue队列总结
一、头文件#include二、定义特点:先进先出三、用法(1)创建一个空的queue对象queue q(2)入队,将x接到队列的末端q.push(x)(3)出队,弹出队列的第一个元素,并不会返回被弹出元素的值q.pop()(4)访问队首元素(即最高被压入队列的元素)q.front()(5)访问队尾元原创 2016-06-21 14:32:48 · 635 阅读 · 0 评论 -
c++中replace函数用法总结
一、用法一string& replace (size_t pos, size_t len, const string& str) 用str 替换指定字符串从起始位置pos开始长度为len 的字符replace(i, j, str); 用str 替换从i 开始的长度为 j 的字符例子:#includeusing namespace std;int main(){原创 2016-08-25 11:16:56 · 10271 阅读 · 0 评论 -
c++ 动态申请二维数组
直接上代码:#includeusing namespace std;int main(){ // x 是一个二维 int 数组 int** x; //接收用户输入的行和列值 int row, col; cin>>row>>col; // 创建行指针 x = new int*[row]; // 为每一行分配空间 for(int i=0; i<row; i+原创 2016-08-25 22:26:59 · 528 阅读 · 0 评论 -
【leetcode】c++ map按照value排序
目的:map[key, value],按照value排序一、加头文件 #include二、加入代码typedef pair PAIR;int cmp(const PAIR& x, const PAIR& y){ return x.second > y.second;}vector pair_vec; for(map::iterator map_iter =原创 2016-09-05 23:33:00 · 798 阅读 · 0 评论 -
c++ STL中的全排列函数
头文件:#include函数原型:bool next_permutation(iterator start, iterator end);next_permutation函数的返回值是布尔类型例子:#include#includeusing namespace std;int main(){ string str="abc"; while(next原创 2016-12-05 23:11:03 · 8418 阅读 · 1 评论 -
二叉树遍历的c++具体实现
树的数据结构如下:struct TreeNode{ int val; TreeNode* left; TreeNode* right;};一、先序遍历按照“根结点-左孩子-右孩子”的顺序进行访问1、递归实现//先序遍历,根-左-右void preorder(TreeNode *root){ //递归写法 if(root!=NULL原创 2017-03-21 15:14:09 · 2278 阅读 · 0 评论 -
编程语言相关知识点梳理
c++语言常考点c语言常考点1 c中的空类 默认产生哪些类成员函数2 单例模式的特点是什么用c实现单例模式3 c中不同数据类型所占用的内存大小4 编写类String的构造函数 析构函数和赋值函数5 引用和指针有什么区别6 c如何连接数据库7 c模板8 c中new malloc的区别9 c中头文件h和源文件cpp的区别10 头文件中的ifndef define endif的作用1原创 2017-05-03 23:33:20 · 3577 阅读 · 2 评论