c++学习笔记

一些零碎的知识点

花了2个月的时间看或者学完了b站的东西,完整的学习请参考b站黑马程序员教程和清华的教材。

1、const形参的作用

void printDeque(const deque<int>& d) 
{
    for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) {
        cout << *it << " ";

    }
    cout << endl;
}

上面的代码作用是打印,不希望打印的内容被修改,其中const来实现这个功能,避免下面的情况发生。
另外,注意第一行参数前面的&

void printDeque(const deque<int>& d) 
{
     d[0]=6;//error!!它的值被意外改变了,不能打印出正常的数据
}

2、vector和deque容器的区别

vector中有函数 capacity(); //容器的容量
deque容器中没有capacity();//因为它的容量是无限的

3、引用’&‘的好处

如果想让函数的形参和实参同步修改的话,函数形参要用引用的方式。

4、五种迭代器

Input iterator(输入迭代器)读,不能写;只支持自增运算
Output iterator(输出迭代器)写,不能读;只支持自增运算
Forward iterator(前向迭代器)读和写;只支持自增运算
Bidirectional iterator(双向迭代器)读和写;支持自增和自减运算
Random access iterator(随机访问迭代器)读和写;支持完整的迭代器算术运算

5、STL常用容器

容器名称特点
string字符串
vecto单端数组,可以动态扩展,迭代器是随机访问迭代器
deque双端数组,首尾都可以进行插入操作,迭代器是随机访问迭代器
stack栈,先进后出,只有顶端的元素才可以被外界使用,不允许有遍历行为
queue队列,先进先出,只有队头和队尾才可以被外界使用,不允许有遍历行为
list链表,将数据进行链式存储,迭代器只支持前移和后移
set插入时自动排序
map插入时自动排序,所有元素都是pair

List和vector是两个最常被使用的容器

6、b站p235小节在vs2019下不能运行的错误修正

主要在第三行上加一个const

class MyCompare {
public:
    bool operator()(int v1, int v2) {
        return v1 > v2;
    }
};

改成

class MyCompare {
public:
    bool operator()(int v1, int v2)const {
        return v1 > v2;
    }
};

7、比较运算符__返回一个布尔值

主要有"=="、"!="、">"、">="等。

8、仿函数的2种用法

第一种:

bool myCompare(int val1 , int val2)
{
    return val1 > val2;
}

L.sort(myCompare); 

第二种:

class myCompare
{
    bool  operator()(int val1 , int val2)
    {
        return val1 > val2;
    }
}

L.sort(myCompare()); 

实现的效果是一样的,都能够对排序规则进行更改。

9、容易搞混的单词

migrant 移民
merge 合并

10、vector使用“[ ]”时的问题

vector<int> v;
	for (int i = 0; i < 10; i++)
	{
		v[i]=i;//这样是不行的要先开辟合适的空间给他
	}

改成如下的形式就好了。

vector<int> v;
v.resize(10);//指定它的长度为10
	for (int i = 0; i < 10; i++)
	{
		v[i]=i;
	}

11、binary_search不能在无序序列中使用

无序序列 13569412
有序序列 1235689

12、完成b站视频学习

20210906-20211105
历时2个月,手写了很多代码。

13、system(“PAUSE”)

是暂停的意思,等待用户信号;不然控制台程序会一闪即过,你来不及看到执行结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值