浅谈高校网站群的建设小程序开发制作
欢迎来观看温柔了岁月.c的博客
目前
设有C++学习专栏
C语言项目专栏
数据结构与算法专栏
目前主要更新C++学习专栏,C语言项目专栏不定时更新
待C++专栏完毕,会陆续更新C++项目专栏和数据结构与算法专栏
一周主要三更,星期三,星期五,星期天
感谢大家的支持
string和自动推断类型
string
string本身是一个类,大家学会使用就可以
它的头文件是<string>
创建方式
#include<iostream>
#include<string> //使用string头文件
using namespace std;int main()
{//创建方式
//1.不赋初值string str1;str1 = "温柔了岁月";//2.赋初值string str2 = "温柔了岁月";//3.用另一个字符串赋值来创建string str3(str2); //相当于 str3 = str2;cout << str3 << endl;string str4 = str3;cout << str4 << endl;system("pause");return 0;
}
用string ,赋值的字符串,不用担心大小或者越界的关系,它的大小是系统自动给,动态的
基本操作
比较
//比较 cout << (str3 >= str4) << endl; // 真,结果为1cout << (str5 >= str4) << endl; //假结果为0
//输入string str6;cin >> str6;cout << str6;if (str6 == string("温柔了岁月")){cout << "正确" << endl;}
强制类型转换(C与C++)
string("温柔了岁月"),这是C++的强制类型转换 ,
C++中: 数据类型(数据);
C语言中:(数据类型) 数据;
连接
//连接(用加法)string str7;str7 = "张三";string str8 = str7 + "很帅";cout << str8 << endl;
大小计算
cout << str7.length() << endl; //当前长度cout << str7.size() << endl; //大下 与长度一样cout << str7.capacity() << endl; //容量
打印
在C++中直接用cout + << 打印即可
如果想要用printf()打印,不能直接使用%s打印,会出现乱码
因为在C++中它是一个类,sring.h 在C中,它相当于 char*

可以使用两个函数_str(), date()
#include<iostream>
#include<string>
#include<cstdio>using namespace std;int main()
{string str1 = "温柔了岁月";//printf("%s", str1); //不能直接用%s打印printf("%s\n", str1.c_str());printf("%s\n", str1.data());system("pause");return 0;
}
自动推断类型
auto
就是系统自动推断出变量的类型
使用
使用auto,一定要又赋值的操作,变量没有赋值,auto 推不出来,自己就报错

如图所示,a = 9,自动推断出了int 类型

好处
如果你不知道这个变量的类型,你可以直接使用auto,进行推断
如果这个变量的类型太长,你可以用auto代替,比较简单
当然auto 的应用不只是这几种,还有关于auto的一种新式的for循环,比起传统的更加简单高效
这种的后续在进行介绍
decltype
它也是一个自动推断类型,与auto不同的是,它可以进行赋初值,也可以不进行赋初值
人们希望从表达式的类型推断出定义的变量类型,但是不想用该表达式的值初始化变量,为了满足这一要求,所以C++11新标准引入了decltype
使用
decltype((a)) 当里面是双重括号的时候,结果用于是引用
decltype(a), 只有当a是引用,它结果才是引用
2.基本的用法decltype(a + 1) num; 通过推断表达式a + 1的类型,从而让num也是该类型
#include<iostream>using namespace std;int main()
{auto a = 9;decltype(123) a = 123; //赋初值decltype(234) num; //不赋初值system("pause");return 0;
}

decltype的好处也是跟auto类型一样的,
你不知道这个变量是什么类型,可以用这个来推