C/C++
文章平均质量分 53
青盏
这个作者很懒,什么都没留下…
展开
-
当对象的容器成员被removed后还能用么?
能用,但不能保证数据,removed后最好clear下。Reusing a moved container?#include <iostream>#include<map>using namespace std;class A { public: map<int, int> a; bool b = false;};int main(){ A t; t.a[1] = 1; A x; cout << "t: " <.原创 2021-07-25 16:11:01 · 126 阅读 · 0 评论 -
C++ 记一次debug core dump
背景是想多线程并行处理数据。但是出现了core。代码简化如下:struct Result { Ads& a; Ads& b; std::string s;}; static TaskManager task_manager(3); //线程池 std::vector<std::function<int()>> task_list; task_list.reserve(3); std::vector<原创 2021-02-20 22:54:48 · 667 阅读 · 0 评论 -
C++ gdb调试core
《100个gdb小技巧》运行gdb:gdb7.12 bin文件 core文件列出调用栈: bt选择函数堆栈帧: f n打印当前函数局部变量的值: i locals打印变量值:p var_向上或向下切换函数堆栈帧: up n / down n原创 2021-02-20 13:24:20 · 636 阅读 · 0 评论 -
C++ Primer中小细节 章节三:C++标准库
IO类型:流读取写入:iostream文件读取写入:fstreamstring读取写入:sstreamio类型不可拷贝和赋值,因此无法用于形参或返回类型,而通常以引用方式传递。读写一个io对象会改变其状态,因此不能用const。文件io:ifstream in(infile);ofstream out;out.open(outfile, ofstream::app); //默...原创 2020-02-20 21:46:49 · 436 阅读 · 0 评论 -
C++ Primer中小细节 章节二:C++基础
endl:调试时加上能够刷新缓冲区;测试时可以使用excu <infile >outfile来文件重定向char:char类型的有无符号是由编译器决定的,如果要存储不大整数,最好明确指定类型。类型选择:1、明确数值不为负时选择无符号;2、一般选择int,超过int选择long long;3、浮点运算选择double,其与float速度近似,一般不用long double...原创 2020-01-26 21:56:05 · 523 阅读 · 0 评论 -
C++ 负值赋给无符号类型
1、无符号字符型赋给整型变量时,将其放置低位字节,高位字节补0;2、有符号字符型赋给整型变量时,将其放置低位字节,高位字节补符号位。一、#include <iostream>int main(){ unsigned char a1 = -1; signed char a2 = -1; std::cout<<(int)a1<<" "<&l...原创 2020-01-16 16:05:30 · 2611 阅读 · 0 评论 -
C++ 类型转换
不同类型数据之间混合运算时低级别的类型转换为高级别类型。如下图所示 赋值时类型转换实型数赋值给整型变量时除去小数部分。仅将整数部分赋给整型变量,超出范围报错。整型数赋值给实型变量时,将整型变成实型后再赋值给实型变量。将少字节整型数据赋值给多字节整型变量时,将少字节放置在多字节整型低位字节,高位扩展少字节整型符号位。将字符型赋值给整型变量,分为: 对无符号字符型,放置在整型低位,高位字节原创 2016-09-07 16:21:50 · 531 阅读 · 0 评论 -
C++ 继承与派生
一、继承方式公有继承 基类中公有成员和保护成员访问权限不变,私有成员变为不可访问。 私有继承(默认) 基类中公有成员和保护成员变为私有成员,私有成员变为不可访问。 保护继承 基类中公有成员和保护成员变为保护成员,私有成员变为不可访问。 综合:私有成员全都变成不可访问。公有继承不改变访问权限,私有继承和保护继承都是将基类中公有成员和保护成员变成继承方式所对应的权限。二、构造和析构顺序对原创 2016-09-07 18:57:17 · 595 阅读 · 0 评论 -
C语言的整型溢出问题 int、long、long long取值范围 最大最小值
溢出和取值范围C语言的整型溢出问题 整数溢出 int、long int 、long long int 占用字节疑问《C和指针》中写过:long与int:标准只规定long不小于int的长度,int不小于short的长度。double与int类型的存储机制不同,long int的8个字节全部都是数据位,而double是以尾数,底数,指数的形式表示的,类似科学计数法,因此double比原创 2017-08-24 20:48:13 · 129009 阅读 · 2 评论 -
C++ 虚函数 纯虚函数
一、问题多态性: 多态性分为两类: 静态多态性指在编译期间就已经确定了函数调用和函数代码直接的关系。比如,在编译重载函数和重载运算符函数时,编译器根据它们的参数表,对应相同函数名进行修饰,将它们转化为不同函数名。遇到函数调用语句,根据实参就能够确定使用哪个函数。 动态多态性指程序只有在运行时才能够确定调用哪个函数。比如通过基类的指针或引用调用虚函数。 兼容性规则: 当我们把派生原创 2016-09-06 16:46:53 · 559 阅读 · 0 评论 -
C++ 静态成员 静态成员函数
一、静态成员类对象在声明后各自拥有自己的类成员,但是如果我们想同一个类对象共享数据,那么就需要声明静态成员。使用static关键字声明。 注意: 1、静态数据成员必须在类外完成初始化 如果不赋值,默认为0 2、静态数据成员因为为类对象所共有,所以可以被所有同类对象引用,甚至使用类名引用a.d;b.d;Sample::d;3、静态成员函数受限于访问权限public,protecte原创 2016-09-08 19:34:43 · 530 阅读 · 0 评论 -
C++ C int数字与string字符串的转换 string与char*转换 string与cstring转换
一、使用stringstream类c++的stringstream的速度较慢,需注意转换成的是string对象。// 将数字转为字符串#include <sstream>#Include <string>string num2str(double i){ stringstream ss; ss<<i; return ss.str();}//原创 2017-08-08 22:24:10 · 2189 阅读 · 3 评论 -
在cin>>后使用getline无法读取到数据
C++ cin>> cin.get() cin.getline() cin>>P; vector<string> pstring; for(int i=0; i<P; i++){ getline(cin,tem); //读取不到数据 pstring.push_back(tem); } cin>>P; cin.ignore(原创 2017-08-10 21:40:58 · 3118 阅读 · 2 评论 -
C++ cin>> cin.get() cin.getline()
一、cin>> cin>>遇到空格、换行符和制表符结束输入,并忽略空格、换行符和制表符。int a,b; cin>>a>>b; //获取字符串char a[20]; cin>>a;//或string s; cin>>s; //注意遇到空格会终止读取二、cin.get() cin.get()获取字符,可读取空格,遇到换行终止读取。// 获取单个字符,可以读取换行符ch原创 2017-08-08 17:36:36 · 4416 阅读 · 0 评论 -
C++ C 获取一个整数位数
//数学运算#include #includeusing namespace std;int main(){ //int n = 1 + (int)log10(num); //返回类型double,num需大于0 cout 1+ log10(1) << endl; cout 1+ log10(0) << endl; cout 1+ log10(-1) <<原创 2018-01-17 15:50:41 · 25288 阅读 · 0 评论 -
工程常用C++用法
make share用法#include <cpputil/program/conf.h>extern std::shared_ptr<cpputil::program::Conf> conf;conf = std::make_shared<cpputil::program::Conf>(filename);数据格式转换:#include <...原创 2019-07-01 16:34:24 · 1679 阅读 · 0 评论