林某人的一天速成c到c++(手动狗头)

String:
String 类输入:(同时注意对char*字符数组运算时也可看做string做运算,运算符已被重载)
在这里插入图片描述
对string:
//可以使用c风格字符串
//可以使用cin将键盘输入存储到string对象
//使用cout
//使用数组下标访问在string对象中得字符

//string为简单变量而不是数组
//c++自动处理string大小

//string构造函数(即这些函数得不同参数得重载),八种构造器(初始化,切片,拷贝),string str(参数)

String::npos为字符串可以存储的最大的字符数,通常是无符号int或者无符号long的最大值,当find方法找不到指定字符时返回string::npos

String一些指常用方法:
Find()方法(对char*亦可)返回的是字符串中第一个指定字符串的开始索引值。
还有相关的其他的find方法,比如找到最后匹配的字符串索引值,或者从最后开始匹配,或者任意字符匹配等等。

其他方法:
在这里插入图片描述
在这里插入图片描述
Sprint函数与sscanf函数(指定输入流与指定输出流):
在这里插入图片描述
在这里插入图片描述
输入输出流的操作:
在这里插入图片描述
在这里插入图片描述
循环拼接:
(注意的是c++中string的+=等这些运算符,如果要频繁循环使用的话,会不停的创建新的对象花费许多不必要的空间)
在这里插入图片描述
数据类型的相互转化:
在这里插入图片描述
类与对象:
在这里插入图片描述
在这里插入图片描述
类对象的数据隐藏与封装:
在这里插入图片描述
构造器:
在只内部可见的类对象中,批量初始化变量时就要用到构造器:
在这里插入图片描述
在这里插入图片描述
在函数中参数的设置若在形参名前不加上&则不会对传入数据拷贝,形成临时变量,对数据进行操作,消耗空间,而加上&后则不会消耗空间发生拷贝,而直接对数据进行修改等操作。
在这里插入图片描述
函数:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
C++标准容器 STL
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
动态数组:
在这里插入图片描述
栈(stack)
在这里插入图片描述
Queue:
在这里插入图片描述
Priority-queue:
三个参数,第三个参数cmp可以自定义定义(亦可使用系统定义)比较条件:
在这里插入图片描述
在这里插入图片描述
Map:
初始化,增,改,迭代
在这里插入图片描述
Algorithm头文件
#常用的函数
在这里插入图片描述
在这里插入图片描述
全排列 next_permutation
在这里插入图片描述
在这里插入图片描述

其他:
ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流
cin cout 相比于scanf与printf效率要低很多,因为cin cout是先要把输出的东西存入缓冲区再输出,这段语句可以用来打消iostream的输入输出缓存,节省时间。

输出实数规定精度:
#include
Cout<<fixed<<setprecision(小数点后几位)<<double<<endl;
//如果不加fixed,那么setprecision()规定的位数则是对于整个实数来说规定的。

使用string作为函数形参:
(std::string 形参名)

使用动态数组输入未知长度的数组(模板):
#include
#include//引入vector头文件
using namespace std;
int main() {
vector array;//定义一个vector数组array
int number;
while (1) {
cin >> number;
array.push_back(number);//每输入一个数字就把它添加到数组的最后
if (cin.get() == ‘\n’)//如果是回车符则跳出循环
break;
}
int len = array.size();//返回数组长度为len
//下面遍历一遍数组看看对不对
for (int i = 0; i < len; i++) {
cout << array[i] << endl;
}
return 0;
}

进制输入输出的转化:

输出时规定输出的十六进制为大写字母:
#include

也可以使用sprintf函数来进行进制转化(如要实现进制转换,改变格式化字符参数即可):
Sprintf函数:(实例)

在这里插入图片描述
字符串变量与字符数组之间的相互转化:

在这里插入图片描述
定义二维数组的四种方法(静态动态,一维二维)
1、 使用一维数组模拟二维数组:
int a0[] = {1,2,3,4,5,6};
for(int i=0;i<rows;i++){
for(int j=0;j<columns;j++){
cout<<a0[icolumns+j]<<" ";//a0[icolumns+j]等价于a0[i][j]
}
cout<<endl;
}
2、 定义静态二维数组:
int a1[2][3] = {1,2,3,4,5,6};
3、 动态二维数组:
在这里插入图片描述
4、 使用vector创建:
在这里插入图片描述
链表:构造链表并延续链表模板,一个链表头部,另一个指针用来延续列表:
ListNode head, *tail = &head;

优先级队列的运算符重载:
模板:
//构造一个顶部为最小值的优先级队列
class mycmp {
public :
bool operator() (int a, int b) {
return a > b;
}
};

priority_queue<int,vector,mycmp> q;

动态数组vector的初始化填充:
在这里插入图片描述
初始化string对象的几种方法:

在这里插入图片描述
哈希表的使用:
在这里插入图片描述
在这里插入图片描述
C++截取字符串函数:
#注意在c++中字符串切片的操作方法与python并不同:
在这里插入图片描述
C++输出控制小数点位数两种方法:
一种为setprecision控制:
在这里插入图片描述
另一种为使用printf函数格式化字符控制输出:
在这里插入图片描述
C++中vector删除指定元素的几种方法:
在这里插入图片描述
C++vector的拷贝问题:
在这里插入图片描述
C++string find_first_not_of()与find_last_not_of()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值