C++
文章平均质量分 76
yichudu
code anything
展开
-
c++ 三方库的构建与安装
cmakegnu 套件不含 cmake, 通常需要 apt-get 自行安装.cmake 用来跨平台, 灵活的生成 makefile.通常项目根目录(记为 target_dir)中有 CMakeLists.txt, cmake ${target_dir} 即可搜寻目录下的 CMakeLists.txt , 生成 makefile. 执行过程中会有各种中间文件产生, 为了不污染项目, 通常一串操作为mkdir buildcd buildcmake ..注意 cmake 后的参数只能为目录,原创 2022-02-03 22:25:23 · 2520 阅读 · 0 评论 -
stl-变异算法
void swap(T&a,T&b);//swap()交换两个元素,结果改变实参 FwdIt remove(FwdIt first,FwdIt last,const T& val);//remove()删除具有给定值的元素 FwdIt remove_if(FwdIt first,FwdIt last,Pred pr);//删除满足谓词的元素.pr是一元判定函数原创 2014-03-03 20:59:20 · 1124 阅读 · 0 评论 -
stl-set
set/multiset会根据待定的排序准则,自动将元素排序。两者不同在于前者不允许元素重复,而后者允许。1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同)set模板原型://Key为元素(键值)类型template <class Key, class Compare=less<Ke原创 2014-04-04 19:59:18 · 1019 阅读 · 0 评论 -
String-字符串类
头文件为#include如何将int型的123转化为字符串?#include int a=123;string str;stringstream ss;ss<<a;ss>>str;原创 2014-03-03 20:46:19 · 813 阅读 · 0 评论 -
c++ stl-map stl-pair
STL-map(映射) 的用法。#include #includeusing namespace std;int main(){ map m_map; string str1="hi",str2; if(m_map.find(str1)==m_map.end()) cout<<"not found"; m_map[str1]=3; cout<<m_原创 2014-02-22 18:58:38 · 945 阅读 · 0 评论 -
迭代器 iterator
迭代器 iterator反向迭代器//iterator#include #include #include #include using namespace std;void show(vector& x){ for(auto y:x) cout<<y<<"\t";}int main(int argc, char *argv[]){ vector原创 2014-08-03 13:53:25 · 660 阅读 · 0 评论 -
deque queue and priority_queue
stl-dequedeque 是双端队列,可实现栈与队列的操作。deque支持deque_ob[i] 形式的随机存取。原创 2014-04-06 18:08:04 · 1110 阅读 · 0 评论 -
STL-list
list,双向链表。//list 双向链表 #include #include using namespace std;void show(list &x){ auto it=x.begin(); while(it!=x.end()){ cout<<*it<<" "; it++; } cout<<endl;}int main(int argc,原创 2014-08-09 23:47:06 · 865 阅读 · 0 评论 -
stl-非变异算法
find:在单迭代器序列中找出某zhidiyicichuxiandeweizhi原创 2014-10-20 22:34:53 · 1214 阅读 · 0 评论 -
STL 中的< 重载
同样的代码,mingw可以运行,vs不能运行。vs出错报告:即便mingw能用,输出也不是我预想的先比较x成员再比较y成员。求大神解释。#include #include using namespace std;struct MyPoint{ int x,y; MyPoint(int x,int y){ this->x=x,this->y=y;原创 2014-10-25 14:23:52 · 1433 阅读 · 0 评论 -
stl-map-string-查找重复子串
一个集合(set)是一个容器,存储的多个元素不允许重复。集合中的元素默认按升序排列。一个集合通过一个链表来组织,在插入操作和删除操作上比向量(vector)快,但查找或添加末尾的元素时会有些慢。具体实现采用了红黑树的平衡二叉树的数据结构。集合不能随机存储,只能通过iterator++来遍历。原创 2014-03-17 19:34:31 · 2354 阅读 · 0 评论 -
STL 概述
STL 概述C++标准库。原创 2014-08-02 13:59:54 · 788 阅读 · 0 评论 -
运算符重载
运算符重载运算符重载的实质是函数重载。重载为类的友元函数。//重载为类的友元函数 #include using namespace std;class complex{ private: double real,image; public: complex(double a=0.1,double b=0.0):real(a),image(b) {} frie原创 2014-04-23 12:52:07 · 1062 阅读 · 0 评论 -
c++ stl vector
vector可以像数组一样使用。#include //构造函数vector();vector(int nSize);vector (int nSize,const T&t);vector(const vector&);//增加函数void push_back(const T&x);iterator insert(iterator it,const T& x原创 2014-04-06 18:15:03 · 953 阅读 · 0 评论 -
重载运算符排序
题目1196:成绩排序时间限制:1 秒内存限制:32 兆特殊判题:否提交:3116解决:1003题目描述:略输入:有若干组输入。每个输入第一行包括一个整数N(1数。接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。输出:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,则按照学号的大小进行从小到原创 2014-03-03 21:47:50 · 2176 阅读 · 0 评论 -
gdb 使用
分析 core 核心转储文件程序崩溃时, 会有核心转储文件生成, 方便定位有异常的栈.下面这个例子中, #6位置有空指针, 所以异常.$gdb binary/home/admin/d2_runtime/bin/sap_server_d suez_worker/core-500-sap_server_d-3504-1553079090 (gdb) bt#0 0x00007f71ae6fc...原创 2019-03-21 10:52:43 · 696 阅读 · 0 评论 -
c++ 响铃
需要用到windows.h 头文件.函数声明为 WINBASEAPI BOOL WINAPI Beep(DWORD,DWORD);代码见下:#include#includeint main(){ //frequency,timespan //sync method for(int i=2;i<=8;i++) Beep(i*100,300); retur原创 2017-02-14 11:36:48 · 4065 阅读 · 0 评论 -
c++ 变量初始化
1.全局变量在全局域中声明的变量会自动初始化为0,如: double salary; int day;2. 局部变量其值随机, 所以一定要先赋值再使用, 不要指望它的值就是0 .对于类中的成员变量, 最好在构造函数中赋予默认值.3. 动态分配比如 int *arr=new int[100]; 数组的值也是随机的, 要小心.原创 2017-02-16 15:30:54 · 648 阅读 · 0 评论 -
c++异常
C++的异常处理引入了三个关键字try(检测异常)、throw(抛出异常)、catch(捕获异常)。try负责监视可能出现异常的程序段。若该段出现异常,程序将不再按原有流程走,而是被throw抛出异常,程序控制权交给catch子句,然后从catch块处顺序执行。try与catch语句块必须紧连。异常处理机制可以将正常语句与异常处理语句分开表示,使逻辑结构更清晰。异常处理流原创 2014-03-26 22:04:50 · 1106 阅读 · 0 评论 -
内存读写
memsetvoid *memset(void *s, int ch, size_t n); //函数原型函数解释:将s中前n个字节 (typedef unsigned int size_t ),逐个字节地用 ch 替换,最后返回 s 。作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。头文件:或若想赋值为特定的int,需要小心,代码原创 2014-10-06 10:34:48 · 2194 阅读 · 1 评论 -
数字读取
cout 小数点后位数限制#include #includeusing namespace std;int main(int argc, char *argv[]){ double a=3.1415; cout<<fixed<<setprecision(3)<<a; //fixed 表示以小数形式输出 // setprecision(n)表示小数点后的位数原创 2014-03-06 20:01:51 · 912 阅读 · 0 评论 -
文件读写、游标
文件读写、游标seekg 函数原型: istream &seekg( off_type offset, ios::seekdir origin ); istream &seekg( pos_type position );函数seekg()用于输入流,并且它将重新设置"get"指针到当前流的从origin偏移offset个字节的位置上,或是置"get"指针在posit原创 2014-07-03 12:10:28 · 2667 阅读 · 0 评论 -
mian函数参数用法
int main(int argc, char *argv[]){}argc:传入字符串常量个数。argv 是字符串数组,argv[i]指向第i个字符串常量。第0个为程序名。原创 2014-05-10 11:45:50 · 2404 阅读 · 0 评论 -
cin cout
当需要读入一行字符串,字符串中可能含有空格,这时可用string a;getline(cin,a);原创 2014-03-03 20:33:24 · 1102 阅读 · 0 评论 -
cin/printf 重定向
本地调试 C++ cin重定向原创 2014-03-11 22:21:41 · 3707 阅读 · 0 评论 -
stringstream
类的定义:typedef basic_stringstream stringstream;原创 2014-11-23 00:16:01 · 844 阅读 · 0 评论 -
数据类型、表达式 类型转换
cout操纵符:hex,十六进制 oct八进制 dec十进制(默认)进制表示:八进制以数字0为前缀;十六进制以0X或0x做前缀。(是数字0,不是字母o)double型数字判断相等可以用 fabs(a-b)转义符:反斜线\ \a为响铃一个语句太长可以分行写,行尾要用‘\’(注意其后不能有空格)注意区分逻辑运算符与关系运算符。位运算符有 ~ << >> & ^ | 六原创 2014-03-19 16:37:51 · 1107 阅读 · 0 评论 -
类的继承与派生
类的继承与派生原创 2014-07-19 22:57:18 · 1017 阅读 · 0 评论 -
数组、指针与引用类型
int a[4][2]={ 1,2, 3,4, 5,6, 7,8}; int (*b)[2]; b=a;原创 2014-03-19 21:43:18 · 841 阅读 · 0 评论 -
函数(模板)
函数就是能够执行特定功能的有名字的语句块。函数声明中的参数叫形参,函数调用中的参数叫实参。除了定义以外的语句必须放在函数体中。x/0、 数组越界等会导致 RunTime Error调用函数的过程:1.将调用语句的下一个语句地址入栈,以便调用后返回;将实参从右往左入栈;2.实参出栈,值给形参;函数执行;3.函数返回,下条语句地址出栈,程序继续。函数自己调用自己为递归调用;一个原创 2014-03-19 17:02:09 · 806 阅读 · 0 评论 -
虚函数、抽象类及虚基类
多继承时,多个基类中的同名成员在派生类中由于标示符不唯一而出现二义性。可通过类的作用域标示符或重载解决问题。 在多继承中,当派生类的一些直接基类又是从另一个共同基类派生而来时,会出现间接二义性。 解决办法: 虚基类。 普通的消除二义性办法。原创 2014-03-21 20:25:39 · 1155 阅读 · 0 评论 -
(多)继承中的构造与析构
类的继承与多继承原创 2014-06-28 21:23:34 · 730 阅读 · 0 评论 -
流程控制语句
流程控制语句原创 2014-06-29 21:19:10 · 691 阅读 · 0 评论 -
extern static const abstract virtual
extern static const abstract virtualconstconst,常量,初始化过后值不能再变化的变量。int main(){ const int a=1; int const b=2; //以上两行,const位置等价 const int* p1=&a; //p1不是常量,可以更改其所指的地址。这是一个顶层原创 2014-07-19 18:31:09 · 1133 阅读 · 0 评论 -
C++ 17开发环境及IDE搭建(Win&ubuntu¢os)
C++11开发环境搭建(WindowsPlatform)IDE:Code::Blocks 12.11版本Compiler:TDM-GCC http://tdm-gcc.tdragon.net/ TDM64BundleGCC4.8.1问:什么是TDM-GCC?答:Acompilersuitefor32-and64-bitWi原创 2014-07-14 22:24:29 · 7587 阅读 · 2 评论 -
c++ 时间与日期
c++常用函数原创 2014-03-17 21:51:39 · 1514 阅读 · 0 评论 -
C++ 11 新关键字
C++ 11 新特性a原创 2014-07-16 22:31:44 · 2401 阅读 · 0 评论 -
位运算
位操作详解我们先来看看位运算操作符:& (按位与)、| (按位或)、^ (按位异或)、~ (按位取反)、>> (按位右移)、按位左移)。 1、&(按位与) 从概念上来讲,就是将参与运算的两个分量对应的每一位来做逻辑与运算,若两者都为真(等于1),则结果才为真(等于1)。否则都为假(等于0)。即:1 & 1 = 1 、1&0 = 0 、0&1 = 1、0&0 = 0这里我们先来看原创 2014-03-26 20:25:16 · 1047 阅读 · 0 评论 -
回调函数
回调函数A函数的函数指针作B函数的参数,那么称A为回调函数。原创 2014-06-25 17:38:36 · 593 阅读 · 0 评论 -
类的 静态/常成员 及 友元
静态成员://静态成员 #include using namespace std;class m_class1{ private: static int a,b; int d; public: static int c; void fun(){//普通函数可以存取静态成员变量 a=100; } static void fun2(){ a=原创 2014-03-31 10:37:48 · 1394 阅读 · 0 评论