
C/C++
C/C++相关知识
CN_BIT
这个作者很懒,什么都没留下…
展开
-
VS正确引入头文件仍然报C2065等错(不同编码代码页导致)
VS一处bug原创 2022-08-28 14:05:40 · 1447 阅读 · 1 评论 -
关于运行程序时会产生的gmon.out文件
gprof是安装在你的Linux系统的/usr/bin目录下的一个程序,它 将告诉你程序里每个函数被调用的次数和每个函数执行时所占时间的百分比,你如果想提高你的程序性能的话,这些信息非常有用。为了在你的程序上使用gprof,你必须在编译程序时加上-pg选项, 这将使程序在每次执行时产生一个叫gmon.out的文件, gprof用这个文件产生剖析信息。如果你不希望生成gm...原创 2020-03-14 22:37:02 · 7742 阅读 · 5 评论 -
赋值语句的返回值 (以return a=b=c==d为例)
#include<stdio.h>int a=0,b=2,c=3,d=3; int puu(){ return a=b=c==d;}int main(){ int pt; pt=puu(); printf("a=%d b=%d c=%d d=%d pt=%d\n",a,b,c,d,pt); return 0;}输出赋值运算的顺序是...原创 2020-02-29 10:10:41 · 5962 阅读 · 0 评论 -
C++11 thread库 用法举例
join()和detach()#include "pch.h"#include <iostream>#include <thread> #include <string>#include <chrono>#include <sstream>#include <ctime>#include <iomanip>using namespace std;void print_time() { auto n原创 2021-03-11 20:08:07 · 415 阅读 · 0 评论 -
文件读写r,rb,w,wb区别(对于换行符的处理)
windows:当用'w'方式写文件时,将\n变成两个字符\r\n写入文件。当用'r'方式读文件时,将文件里的\r\n读入为\n。使用‘rb’,'wb'方式读写则不会发生上述转换Linux:没有区别,因为linux只使用\n表示换行。参考文章...原创 2020-11-10 11:31:54 · 1886 阅读 · 0 评论 -
Qt TextEdit组件对不同编码文件的写入和显示
1.TextEdit组件对utf8编码文件的写入和显示TextEdit组件的setPlainText方法的参数是QString,QString默认是utf8编码。此时无需转码。写入文件QFile File(filePath);QString str=ui->TextEdit->toPlainText(); QByteArray strBytes=str.toUtf8(); File.write(strBytes,strBytes.length()); F原创 2020-09-19 15:39:21 · 1866 阅读 · 0 评论 -
C++二维vector初始化及排序用法
题目:洛谷P1093这题用结构体+sort可以很好的解决,在这里试一下新的玩法。用二维数组进行排序,顺便复习一下Lambda表达式(不是故意压行的)。#include<iostream>#include<algorithm>#include<vector>using namespace std; int main(){ ios::sync_with_stdio(false); int n; cin>>n; vector<v原创 2020-05-21 08:49:58 · 808 阅读 · 0 评论 -
C++ lambda表达式末尾()的作用
#include<iostream>using namespace std;int main(){ auto u=[](int a,int b){ cout<<a<<' '<<b<<endl;return 0;}; //u是一个函数对象 u(1,2); //执行u return 0;} 等价于#include<iostream>using namespace std;int mai.原创 2020-05-19 09:52:44 · 513 阅读 · 0 评论 -
printf("%m.nd",x)格式化输出详解
查询了很多文章发现,很少有人讲类似printf("%[tag]m.nd",x)这种格式化输出。m是指整个输出占的宽度,n是指数字占有的宽度,tag为+时代表无论正负数都带符号输出,为-时代表左对齐。在这里我举几个例子,这样就很好理解。#include<iostream>#include<cstdio>using namespace std;int main(){ int a=4; printf("%+6.4d,\n",a); printf("%6.4d,\n原创 2020-05-11 17:01:47 · 1434 阅读 · 0 评论 -
while(~scanf("%d",&n)) 详解
#include<iostream>using namespace std;int main(){ int n; int t=~scanf("%d",&n); cout<<t<<endl; return 0;} 文件结束标志EOF的值为-1,所以读入结束时scanf的返回值为-1,而-1的取反为0(补码)。故我们用while(...原创 2020-04-09 10:28:04 · 1264 阅读 · 0 评论 -
字符指针数组的使用及排序
#include<stdio.h> #include<stdlib.h>#include<string.h> using namespace std;char* list[5]={"cattle","car","cabet","cap","canon"};int compare(const void*a, const void*b){ ...原创 2020-04-01 21:57:22 · 309 阅读 · 0 评论 -
memset 赋最大最小值、0、-1原理
在编程中,有时我们需要初始化一个全为最大值/最小值的数组。我们可以这样做#include<bits/stdc++.h>using namespace std;int main(){ int a[5]; for(int i=0;i<5;i++) a[i]=0x7fffffff; //2^31-1 for(int i=0;i<5;i++...原创 2020-03-20 09:22:53 · 1655 阅读 · 0 评论 -
std::ios::sync_with_stdio(false);详解
在阅读学习别人的代码的过程中,我们有时会发现这么一行:std::ios::sync_with_stdio(false);这是由于cin比scanf要慢很多,在需要大量读入时,用此行代码可以使cin更快。为什么cin比scanf更慢呢?标准 C++ 流与标准 C 流在每次输入/输出操作后同步,同步的 C++ 流为无缓冲,而每次 C++ 流上的 I/O 都立即应用到对应 C 流的缓冲区...原创 2020-03-13 18:12:10 · 1876 阅读 · 0 评论 -
C/C++文件输入输出代码演示
1.重定向#include<bits/stdc++.h>using namespace std;//从in.txt读入整数n和字符串sg,将其输出n次到out.txt中//代码与文件放在一个文件夹中 int main(){ freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); int n; st...原创 2020-03-07 22:22:46 · 2093 阅读 · 0 评论 -
Dec-c++ 底部编译信息/报告窗口不显示
症状如图:1. 视图->浮动报告窗口2.将出现的报告窗口拉大3.再次点击视图->浮动报告窗口,窗口就会自动固定到底部*固定在底部后可能会出现点击报告窗口、报告窗口再度消失的情况,建议将报告固定到底部后重启dev...原创 2020-03-06 09:24:26 · 8367 阅读 · 10 评论 -
__gcd 函数
今天水洛谷P1888,在题解里发现了这个函数属于#include<algorithm>__gcd,它的前面是两条英文下划线,作用是求最大公约数贴上原题题解#include<iostream> #include<algorithm>using namespace std;typedef long long ll;int main(){...原创 2020-03-13 20:42:50 · 2843 阅读 · 0 评论