9月18日
C++标准库。
一、C++入门基础
1、基础
入口函数与C语言相同
后缀名使用cpp
注释与c语言相同
导入c++标准库无需后缀
自定义头文件与c语言相同
using namespace std;
std:名称空间(全局区)
cout、endl属性名称空间“std”
C++输出没有格式输出符。
2、C++输入cin
int a;
char a1[100];
cin>>a>>a1
cout<<"a1:"<<a1<<" "<<"a="<<a<<endl;
return 0;
3、C++格式控制
导入头文件<iomanip>
void f2()
{
int x=10;
cout <<x<<endl;
cout<<std::hex<<x<<endl;//16进制输出
}
int main(int argc, char *argv[])
{
int x=123;
f2();
cout << setw(20)<<setfill('*')<<x<<endl;
//只有setw只设置一次,其他都是全部设置(设置一次后,后面的都是这个设置)。
4、字符串string
以空格结束。
void f4()
{
string str1;
getline(cin,str1);//可以输入空格。
cout<<str1<<endl;
}
std::flush刷新输出
根据索引获取字符,根据索引修改字符串中的字符。
string.at(index) 与 string[index]效果等效。
string append(string),连接字符串;
int find(string): 返回子字符串在调用字符串中的首个字符索引,失败返回0;
erase();
erase(pos,n)删除从pos位置开始的n个字符,当余下的字符不足n,有多少删多少
erase(pos):删除从pos位置开始的所有字符
string insert(size_t pos,const string& str);
pos:要插入的位置的索引
str要插入的另一个字符。
字符比较:==、!=、<、>、<=、>=。
字符串反转:
头文件 include<algorithm>
reverse(str.begin,sre.end())。
*(str.begin):迭代器。
find_first_not_of(char c):
返回第一个不是字符c的索引。
find_last_not_of(char c):
返回最后一个不是字符c的索引。
5、变量的引用reference
一、引用类型:int &
创建时才能取别名,创建引用类型时必须初始化。
int a=10;
int b=100;
int &y = a; 给a取别名。
y=b;给a,y赋值。
二、为堆中内存起名字
int *p=(int *)malloc(4);
int &y=*p; //y成了p指向的内存的别名
三、引用型变量当作形参,用于当作变量别名
实参为变量名
实参为变量的引用
实参为堆中内存
四、函数返回堆内存的引用
(1)能返回堆中内存的引用。
(2)能返回堆中内存,因为返回前,内存会被自动转换为引用,本质还是返回的堆中内存的引用
(3)接收堆中引用时,要使用引用类型变量来接收,否则很难销毁堆中内存了。
五、不能要返回局部变量的引用,局部变量函数执行结束后被销毁。
六、返回对象的引用
正则表达式:将空格替换成需要的值(连续的空格被替换一次)
#include <regex>
void mergeSpace(string &src,string rep){
regex re(“\\s+”);//s:space的缩写,“+”表示连续的。
src=regex_replace(src,re,rep);
}