摘要:
lambda 表达式 剖析 大前提:捕获列表里变量的确定时机。 捕获列表和参数列表有区别,捕获列表里的变量,是在捕获的时间点就确定了,而不是在lambda调用时确定,参数列表是在调用时才确定。所以当捕获了一个int i,i=12,然后在lambda后面的代码又改变i为22,但是当调用lambda的时 阅读全文
摘要:
lambda 表达式 介绍 问题:假设有个需求是,在vector\找出所有长度大于等于4的元素。标准库find_if函数的第三参数是函数指针,但是这个函数指针指向的函数只能接受一个参数,这个参数是vector\里的元素。这时问题就来了,长度4无法作为参数传递, 肿么办??? 解决办法:使用lambd 阅读全文
摘要:
通用的(泛型)算法 之 只读算法,写算法,排序算法 只读算法: | 函数名 | 功能描述 | | | | | accumulate | 求容器里元素的和 | | equal | 比较2个容器里的元素 | 写算法 | 函数名 | 功能描述 | | | | | fill | 用给定值,覆盖给定的范围的元 阅读全文
摘要:
通用的(泛型)算法 generic algorithm 总览 特性: 1,标准库的顺序容器定义了很少的操作,比如添加,删除等。 2,问题:其实还有很多操作,比如排序,查找特定的元素,替换或删除一个特定值等,但是标准库并未给每个容器都定义成员函数来实现这些操作。 3,解决办法:因为算法是相同的逻辑,只 阅读全文
摘要:
c/c++ 标准容器 vector的内存空间是如何自动增长的 vector,string,deque的内存存储机制:在一个连续的内存空间存储,所以才支持下标操作。 vector的课题:由于容器的大小是可变的,当插入元素后,vector必须分配新的内存来保存已有元素和新的元素,将已有元素从旧的内存地址 阅读全文
摘要:
c/c++ 标准容器 forward_list, resize, 重新定位迭代器 1,forward_list特有的方法: + insert_after + emplace_after + erase_after 2,容器的插入删除操作后的注意事项 + 必须保证每次改变容器的操作后都正确地重新定位迭 阅读全文
摘要:
c/c++ 标准顺序容器 容器的访问,删除 操作 pop_front:vector,string不支持 pop_back:forward_list不支持 知识点 1,front, back, at 成员函数的使用,对应代码里的test1 2,删除最后一个元素pop_back, 删除第一个元素pop_ 阅读全文
摘要:
c/c++ 标准顺序容器 之 push_back,push_front,insert,emplace 操作 关键概念:向容器添加元素时,添加的是元素的拷贝,而不是对象本身。随后对容器中元素的任何改变都不会影响到原始对象,反之亦然。 关键警告:因为vector,deque,string的内存存储都是在 阅读全文
摘要:
c/c++ 标准容器 之 初始化, 赋值, swap, 比较 知识点 1,容器的初始化,对应代码里的test1 2,标准库array的初始化,对应代码里的test2 3,容器的赋值 ,对应代码里的test3 4,容器的swap,对应代码里的test4 5,容器的比较(==,!=, , =, incl 阅读全文
摘要:
c/c++ 多维数组和指针 知识点 1,初始化多维数组,对应代码里的test1 2,遍历多维数组,除了最内层循环外,其他所有层都必须是引用类型,对应代码里的test2 3,指针和多维数组 ,对应代码里的test3 c++ include using namespace std; int main() 阅读全文