
C++
QWQ___qwq
公众号:CS漫谈
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二维vector数组的使用简介
我用中文写个总结:1.初试化方式vector<vector<int>> vect { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };2.遍历方式for (int i = 0; i < vect.size(); i++) { for (int j = 0; j < vect[i].size(); j++) { cout << vect[i][j] << " "; } cout &原创 2021-08-12 17:20:54 · 874 阅读 · 0 评论 -
第三章 进位制
文章目录将P进制数字x转换为10进制数y。将十进制数y转换为Q进制数z将P进制数字x转换为10进制数y。int y=0, product=1;while(x != 0){ y = y + (x % 10) * product; x = x / 10; product = product * p;}将十进制数y转换为Q进制数zint z[40], num= 0;//数组z存放进制数y的每一位,num为位数do{ z[num++] = y % Q;//除基取余 y = y / Q;}原创 2021-08-15 12:25:31 · 133 阅读 · 0 评论 -
C语言字符窜的定义以及读取一整行的方法
C 库函数 - gets()C 标准库 - <stdio.h> C 标准库 - <stdio.h>描述C 库函数 char *gets(char *str) 从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定。例子#include <stdio.h>int main(){ char str[50];//定义字符串 printf("请输入一个字符串:");原创 2021-09-30 14:45:21 · 1450 阅读 · 0 评论 -
最简分数意味着gcd
如果a/b是最简分数,那就表明gcd(a,b)==1原创 2021-09-10 20:43:29 · 149 阅读 · 0 评论 -
为什么两个int相除得到0
#include<iostream>using namespace std;int main() { int a = 1; int b = 8; double c = a / b; double d = a * 1.0 / b; cout << c << endl; cout << d << endl; return 0;}原创 2021-09-10 20:33:06 · 1213 阅读 · 1 评论 -
如何将字符与字符串or字符串与字符串中某个字符的比较
给出string a="A12345";stirng b="A";char c='A';方法://a与b的比较if(a[0]==b[0])//a与c的比较if(a[0]==c)//b与c的比较if(b[0]==c)题目:https://pintia.cn/problem-sets/9948052602231原创 2021-09-08 20:29:17 · 202 阅读 · 0 评论 -
float和double在使用scanf和printf的时候用%f还是%lf
输入输出float%f%fdouble%lf%lf 或 %f我的建议:float:无论输入输出都用 %fdouble:输入输出统一都用 %lf原创 2021-08-24 14:30:03 · 9948 阅读 · 1 评论 -
C++中cout << toupper(c);为什么打印时是一串数字?
touppetoupper的返回值是一个 int (这是早期C语言遗留下来的一个问题)Return Value The uppercase equivalent to c, if such value exists, or c(unchanged) otherwise. The value is returned as an int value that canbe implicitly casted to char.等价于c 的大写,如果存在这样的值,否则c(不变)。该值作为可以隐式转换为ch原创 2021-08-24 10:19:01 · 721 阅读 · 0 评论 -
vector的insert函数用法
今天在刷PAT的时候刷到了。原创 2021-08-18 22:48:29 · 13546 阅读 · 0 评论 -
运用四舍五入的方法
1.对于总成绩要a的40%+b的60%(四舍五入精确到整数)ans=(a*0.4+b*0.6+ 0.5);2.对于某个数N四舍五入t = N / 2 + N % 2;原创 2021-08-18 08:59:54 · 134 阅读 · 0 评论 -
关于reverse函数的感悟
reverse()反转的是从第一个参数到第二个参数前面的那个数。例如:#include<iostream>#include<vector>#include<algorithm>using namespace std;int main() { vector<int> v; for (int i = 0; i < 10; i++) v.push_back(i); reverse(v.begin(), v.begin() + 5); for原创 2021-08-17 10:42:16 · 216 阅读 · 0 评论 -
用sort给string排序的方法
从大到小排序#include<iostream>#include <algorithm>#include<string>using namespace std;bool cmp(char a, char b) { return a - '0' > b - '0';//从大到小排序}int main() { string t="3536425"; sort(t.begin(), t.end(), cmp); cout<原创 2021-08-16 22:05:57 · 3056 阅读 · 0 评论 -
关于函数返回值是vector({}/大括号)的一些理解
最近看到有人用函数返回了一个大括号感到不解,查了一下,如下。原创 2021-08-16 21:51:00 · 2124 阅读 · 4 评论 -
错误:未知重写说明符解决方案/缺少类型说明符
错误:id未知重写说明符原因:很简单因为using namespace std;应该放到上面去。#include<iostream>#include<string>struct node { string id; int tnum, exnum;}s[1010];using namespace std;//应该放到上面去。int main() { return 0;}...原创 2021-08-16 16:40:26 · 1442 阅读 · 0 评论 -
ASCII码对照表
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码,ASCⅡ)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的型态发表是在1967年,最后一次更新则是在1986年,至今为止共定义了128个字符,其中33个字符无法显示(这是以现今操作系统为依归,但在DOS模式下可显示出一些诸如笑脸、扑克牌花式等8-bi原创 2021-08-16 14:01:25 · 166 阅读 · 0 评论 -
string字符串类型用scanf读入,printf输出
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int main(){ string a; a.resize(100); //需要预先分配空间 scanf("%s", &a[0]); printf("%s\n", a.c_str()); return 0;}转载 2021-08-16 12:57:14 · 349 阅读 · 0 评论 -
如何vector中插入放结构体中的变量
在vector中插入变量要用v.push_back()而不能用cin但是如果想在vector<struct node> v插入结构体中的元素就不能直接用v.push_back(),应该先定义一个临时变量temp,将结构体中的变量都cin到temp中,再v.push_back(temp)。下面看一个例子:#include<iostream>using namespace std;struct node{ string name,id; int score;}原创 2021-08-16 10:38:06 · 1729 阅读 · 0 评论 -
关于结构体中 operator< 重载对sort和priority_queue(优先队列)的影响
前言关于在结构体中重载运算法这个问题,起初个人也不算太理解,在浏览许多博文之后发现每个人的解释都不大一样。思考许久之后,决定写一下自己的见解。如果差错,欢迎各位指出。正题首先,我们看一个结构体person。struct person{ double height; double weight; double age;}p[20];不难看出,在结构体person中,我们定义了三个double变量:height,weight,age。我们就用这个结构体来表示人的一些属性。person转载 2021-08-15 21:02:01 · 264 阅读 · 0 评论 -
矢量vector之间用等号赋值的问题
结论:可以在程序上编个小程序试试就能知道了vector v1;v1.pushback(2);v1.pushback(3);v1.pushback(4);vector v2 = v1;cout << v2[0] << v2[1] << v2[2] << endl;原创 2021-08-13 23:09:17 · 1508 阅读 · 0 评论 -
scanf用法及scanf中有\n的问题
scanf()函数的原理想象输入设备(键盘)连接着一个叫“缓冲”的东西,把缓冲认为是一个字符数组。当你的程序执行到scanf时,会从你的缓冲区读东西,如果缓冲区是空的,就阻塞住,等待你从键盘输入。现在假设你的缓冲区里有:abcd\n1234\n (其中\n是回车符)执行:scanf("%s",name);的时候,由于scanf是读数据直到看见空白符(空白符:指空格符、制表符、回车符)就停止的输入函数。所以执行后,把abcd存到了name中。缓冲区于是变成了 : \n1234\n接下来的执行就有问题转载 2021-08-13 12:57:33 · 624 阅读 · 0 评论 -
宽字符wchar_t 与 窄字符char
详细内容:https://www.cnblogs.com/lanhaicode/p/10574260.html原创 2021-08-12 17:26:14 · 182 阅读 · 0 评论 -
结构中的变量可以和别的变量重名吗?
结构体中的成员变量名,与非结构体变量没有关系,可以相同。因为,结构体中的成员变量在引用时,必须要用结构体变量名+成员变量名来引用,所以不会有冲突!原创 2021-08-11 08:36:14 · 2448 阅读 · 0 评论 -
关于sort无法对map、sort排序的问题
1.无法用STL里的sort算法对容器set作排序。set本身就是一种有序的容器。 set主要用于不常变动的数据,对其数据的变动,只能是删除旧的,然后再插入新的,这点从它的iterator就能看出来,它的iterator是const的。你可以在初始化set的时候,指定比较排序的方法,或者干脆把set转换为其它容器(比如vector),然后再排序。 但无法再装入原来的set,因为原来的set的排序方法已被固化了。范例如下:#include <iostream>#include <set&原创 2021-08-10 09:54:07 · 670 阅读 · 0 评论 -
结构体用sort排序
#include <iostream>#include <algorithm>using namespace std; struct stu{ char name[20]; int ar;}; bool map(struct stu a,struct stu b){ if(a.ar<b.ar) return true; else return false; }int main(){ stu stu[100];转载 2021-08-08 23:16:19 · 341 阅读 · 0 评论 -
map<int,vector<int>>和 vector<map<int,vector<int>>>的用法
vector你想象成数组就可以了map就是一个key一个valueint vector1 a[1,2,3,4,5]2 b[1,2,3,4,5]3 c[,1,2,3,4,5]原创 2021-08-08 23:09:03 · 1356 阅读 · 0 评论 -
c_str()用法
语法: const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针1、比如:最好不要这样:char* c;string s=“1234”;c = s.c_str(); //c最后指向的内容是垃圾,因为s对象被析构转载 2021-08-08 17:07:51 · 483 阅读 · 0 评论 -
C/C++中的结束输入条件判断 (scanf、EOF、getchar()、cin.get()、getline)
详细解答:点击即可原创 2021-08-08 14:14:04 · 528 阅读 · 0 评论 -
C++ 传递数组给函数
C++ 中您可以通过指定不带索引的数组名来传递一个指向数组的指针。C++ 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。如果您想要在函数中传递一个一维数组作为参数,您必须以下面三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针。同样地,您也可以传递一个多维数组作为形式参数。方式 1形式参数是一个指针:void myFunction(int *param){...}方式 2形式参数是一个已定义大小的数组:vo转载 2021-08-08 14:07:48 · 128 阅读 · 0 评论 -
关于char能存储多少个数字或者字符的问题
答案:只能存储一个数字或者一个字符#include <iostream>using namespace std;int main() { char c1,c2,c3,c4,c5; c1='a'; c2='1'; c3='abc';//存储了c c4='123';//存储了4 c5=1234;//不会有结果 cout<<c1<<endl; cout<<c2<<endl; cout<<c3<<end原创 2021-08-04 09:30:18 · 5921 阅读 · 0 评论 -
归并排序的问题
原创 2021-08-01 16:10:43 · 88 阅读 · 0 评论 -
2021-07-30
在头文件string里面的函数getline(cin, s);原创 2021-07-31 11:20:50 · 77 阅读 · 0 评论 -
关于C++中vector<vector<int> >的使用
1、定义vector<vector<int>> A;//错误的定义方式vector<vector<int> > A;//正确的定义方式2、插入元素若想定义A = [[0,1,2],[3,4]],有两种方法。(1)定义vector B分别为[0,1,2]和[3,4],然后放入vector A。vector<vector<int> > A; vector<int> B;B.push_back(0);B.pu转载 2021-07-30 19:27:24 · 3805 阅读 · 2 评论 -
vector倒序输出的方法
注意,倒叙输出不是减号,还是 it++#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v; for (int i = 0; i < 10; ++i) v.push_back(i); for (auto it = v.rbegin(); it != v.rend(); it++)//这里还是it++ cout<<*it&l原创 2021-07-30 15:26:57 · 2724 阅读 · 0 评论 -
c/c++中sort函数用法
c++标准库里的排序函数的使用方法I)Sort函数包含在头文件为#include的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!II)Sort函数有三个参数:(1)第一个是要排序的数组的起始地址。(2)第二个是结束的地址(最后一位要排序的地址)(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。Sort函数使用模板 :Sort(start, end, 排序方法)下面就具体使用s转载 2021-07-30 11:11:27 · 130 阅读 · 0 评论 -
C++ 条件运算符 (?:)
C++ 条件运算符 (?: )的通用格式如下:表达式1 ? 表达式2 :表达式3说明:如果表达式1为true,则整个表达式的值为 表达式2的值(即,冒号左边的值);如果表达式1为false,则整个表达式的值为 表达式3的值(即,冒号右边的值);C++中,条件运算符 (?: )是唯一需要3个操作数的运算符。下面举个简单的例子进行说明例如:(1) int a = 1; int b = 2; int c = a > b ? a + b : a - b; cout <<转载 2021-07-30 10:22:05 · 1132 阅读 · 0 评论 -
结构体与指针总结
字符 字符串 这里定义char* str,这里的str是指向char类型的指针。str是指向某处的char类型的数组上图的指针应该初始化 指针 结构体原创 2021-07-27 09:42:27 · 200 阅读 · 0 评论 -
scanf()如何跳过某些字符读取
输入:1/2输出:1 2#include<iostream>using namespace std;int main() { int a, b; scanf_s("%d/%d", &a,&b);//这里只需要加一个/即可 cout << a << " " << b << endl; return 0;}原创 2021-07-26 19:12:41 · 1569 阅读 · 0 评论 -
unable to find numeric literal operator ‘operator““m’
这是直接写的数学乘号了,应该写 *比如2m代码应该写成 2*m原创 2021-07-25 19:25:24 · 2936 阅读 · 0 评论 -
关于double和float和int以及%f,%lf,%llf,%Lf以及printf和scanf的总结
另外,float占四个字节,double占8字节,在表示浮点数(小数)时double精度要高的很多。对于long double类型的变量,printf()中的说明符可以用%Lf,而scanf()中的说明符则只能用%Lf。对于double类型的变量,printf()中的说明符可以用%f或%lf,而scanf()中的说明符则只能用%lf;对于float类型的变量,printf()中的说明符可以用%f或%lf,而scanf()中的说明符则只能用%f;建议不使用float变量,而使用double。原创 2021-07-23 21:32:22 · 22353 阅读 · 1 评论 -
数组里面能存多少数/元素
sb百度一遇到专业问题就掉链子,只能Google了原问题以及回答There are two limits, both not enforced by C++ but rather by the hardware.The first limit (should never be reached) is set by the restrictions of the size type used to describe an index in the array (and the size thereof)转载 2021-07-11 16:07:06 · 735 阅读 · 0 评论