C++复习之路 基础篇二

【写在前面】
基础语言的复习需要在短时间内迅速完成,对C++语言有了解的人可以简单复习,本篇基础篇会慢慢更新。先更新我认为一些比较重要的规则和一些容易错误的知识点。C++语言颗粒密度很细,想要一次性全部记忆很难,我们先对基础的语言有个了解,后续可以根据这个提纲再看C++ Primer!

第三章、向量和字符串数组

本章是非常基础的章节,在我们学习C语言的时候已经接触锅string 对vector和list以及一些其他的类型有了一定的了解,本章基本上是把握自己认为平时比较少注意的点写下来,便于复习和记忆。未来有时间会慢慢补充其他的相关细节!大家加油,语言这块一定要在2-3天内一鼓作气结束!冲呀

3.1 命名空间的using声明

学习c++一开始我们就学习了iostream,后面加上声明

using namespace std; //要加分号,加上这个声明我们使用iostream的标准输入输出流的时候才不需要加::,可以直接使用。我们默认空间是std,表示全局。
这个章节我们主要是要了解一个空间域的概念,未来编程抽象数据类的时候需要经常使用到。
有一个例子:
这个比较生动的和我们说明了空间域的概念在这里插入图片描述

3.2 标准库类型string

3.2.1 定义和初始化string对象
在这里插入图片描述

拷贝初始化,使用= 赋值为拷贝初始化
直接初始化:如果不使用等号,则为直接初始化
列表初始化:{ }使用花括号

3.2.2 string对象上的操作
读操作

注意事项:cin遇到空格符会直接结束 可以使用cin读入对象,但是会不完整,一般我们使用getline读入字符串。
getline() 定义在头文件 string 中,以一个 istream 对象和一个 string 对象为输入参数。getline() 读取输入流的内容直到遇到换行符停止,然后将读入的数据存入 string 对象。
注意 getline 会将换行符也读入,但是不将换行符存入 string 对象。即触发 getline() 函数返回的那个换行符实际上被丢弃掉了。
getline() 只要一遇到换行符就结束读取操作并返回结果,即使一开始就是换行符也一样,这种情况下会得到一个空 string。
getline() 与 << 一样,会返回它的流参数。所以可以用 getline 的结果作为条件。
在这里插入图片描述
在这里插入图片描述
其他操作
getline(is, s2);//从输入流 is 中读取一行赋给 s2,is 是输入流。
s.empty();//s为空则返回 ture
s.size(); //返回字符数,类型为 size_type,无符号整数
s[n]; //对 s 中元素的索引
s3 = s1 + s2;//连接 s1 与 s2,加号两边必须至少有一个是 string,不能都是字面值,比如 “world”+“hello” 是错误的
<.<=,>,>=; //比较时从前往后比较单个字母的大小

sizt::type

string::size_type 类型
string 的 size() 成员函数返回一个 string::size_type 类型的值。
大多数标准库类型都定义了几种配套的类型,这些配套类型体现了标准库与机器无关的特性。
在具体使用时,通过作用域操作符来表明 size_type 是在类 string 中定义的。
string::size_type 是无符号值,可以确定的是它足够存放任何 string 对象的大小。
C++11 允许通过 auto 和 decltype 来获得此类型。
auto len = s.size();// len 的类型是 string::size_type

3.2.3 处理string对象的字符

cctype头文件支持处理这里是引用
在这里插入图片描述

	string s1 = "123wlrp56fsetr";
	for (auto s : s1)
		cout << s<< " ";

	cout << endl;
	for (auto &c : s1)
	{
		c = toupper(c);
		cout << c << " ";
	}

3.3 标准库类型vector

vector是某种数据类型的集合,类似于数组,也是一片连续开辟的空间。但是其可以动态增长,比数据灵活。有迭代器,支持迭代器的使用。

3.4 迭代器

3.5 数组

迭代器类似于简单版本的vector
在这里插入图片描述

3.6 多维数组

关于多维数组,我们在学习C语言的时候有了解到,多维数组其实可以看成n行的n列的一维数组

比如a[3][4] 可以看成3个一维数组,数组为4列,有4个元素
在这里插入图片描述

	int a1[3][4] = {
		{ 1, 2, 3, 5 },
		{2,5,8,9},
		{11,66,88,44}
	};
	for (auto &row : a1)//row为指针 所以必须加引用 无论我们是否修改值
	{
		int n = 0;
		for (auto col : row)//col 如果我们不想修改数组的值,那么不加引用,如果想修改,需要引用
		{
			n++;
			cout << col << " ";
			if (n == 4)
				cout << endl;
		}
	}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值