林某人的一天速成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;
}