- 博客(13)
- 收藏
- 关注
转载 C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)
C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register)1----局部变量和全局变量在讨论函数的形参变量时曾经提到,形参变量只在被调用期间才分配内存单元,调用结束立即释放。这一点表明形参变量只有在函数内才是有效的,离开该函数就不能再使用了。这种变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的量都有自己的作用域。变量说明的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。1.1局部变量局部变量也称为内部变
2021-10-31 11:24:17
1914
转载 vector与list的比较
本博客只作为自己笔记使用vector和list的相同点:都是STL中的序列式容器vector和list的不同点:1.底层结构:vector是一段连续的空间,用动态顺序表实现,而list是一个带头结点的双向链表;2.是否支持随机访问:vector支持随机访问,list不支持随机访问vector访问某个元素的效率为O(1),list访问某个元素的效率为O(n)3.任意位置插入和删除元素的效率:vector中效率低,时间复杂度为O(n),list中效率高,时间复杂度为O(1)原因
2021-09-19 22:35:09
3134
原创 set与unordered_set的对比
本博客只作为集合是一个关联容器,其中包含一组排序的键类型的唯一对象。每个元素只能出现一次,因此不允许重复。用户可以通过以任何顺序插入元素来创建集合,集合将返回排序后的数据给用户,这意味着集合包含用于对从用户抽象的数据进行排序的定义。可以使用set的主要原因是- 当排序的数据是必需的 当不需要重复值时,仅需要唯一数据 当我们要使用二进制搜索树而不是哈希表时。 如果有一个与搜索时间没有问题,因为它需要的log(n)的复杂性中搜索 输入-set={2,1...
2021-09-19 22:27:01
1314
转载 map与unordered_map的简单对比
本博客只作为个人笔记使用:原理map: 内部实现了一个红黑树(红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二叉搜索树),红黑树具有自动排序的功能,因此map内部的所有元素都是有序的,红黑树的每一个节点都代表着map的一个元素。因此,对于map进行的查找,删除,添加等一系列的操作都相当于是对红黑树进行的操作。map中的元素是按照二叉搜索树(又名二叉查找树、二叉排序树,特点就是左子树上所有节点的键值都小于根节点的键值,右子树所有节点的键值都大于根节点的键值)存储的,使用中序遍历可将键值按照从小到大遍历
2021-09-19 22:14:03
199
原创 Vector迭代器失效原因
造成失效的原因是因为内存的重新分配, 保留下来的迭代器不再指向容器中原来的元素迭代器失效的两个层面:1. 无法通过迭代器++,--操作遍历整个stl容器。记作: 第一层失 效。2. 无法通过迭代器存取迭代器所指向的内存。 记作: 第二层...
2021-09-19 21:57:33
1183
转载 C++vector
转载C++ vector的用法(整理)_wkq0825的专栏-CSDN博客本博客只作为本人笔记vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include<vector>;一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的
2021-09-18 21:14:39
66
原创 C++迭代器——续
本博客只作为本人笔记:(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter;这条语句定义了一个名为iter的迭代器,它的数据类型是由vector<int>定义的iterator类型。(2)const_iterator迭代器类型只能读取容器中的元素,而不能修改。for(vector<int>::const_iterator citer=ivec.begin();citer!=ivec.end();
2021-09-18 17:03:31
58
原创 C++迭代器
一:迭代器定义容器分为顺序容器,关联容器,容器适配器等顺序容器,关联容器也叫做一级容器;要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。从这一点上看,迭代器和指针类似。(可以简单认为迭代器就是容器里面的指针)。二:迭代器的分类 1.输入迭代器(input iterator) input iterator就像其名字所说的...
2021-08-23 15:54:04
155
原创 C++循环控制语句
本博客只作为自己的一个笔记使用:C++ 中break语句有以下两种用法:当break语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。 它可用于终止switch语句中的一个 case。如果您使用的是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。C++ 中的continue语句有点像break语句。但它不是强迫终止,continue 会跳过当前循环中的代码,强迫开始下一次循环...
2021-08-16 15:28:36
426
原创 C++循环三个基本循环语句
本博客只作为自己的一个笔记使用:while循环的语法:while(condition){ statement(s);}for循环的语法:for ( init; condition; increment ){ statement(s);}下面是 for 循环的控制流:init会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。 接下来,会判断condition。如果为真,则执行循...
2021-08-16 15:22:48
405
原创 OpenFOAM常用类
本博客只作为自己的一个笔记使用:三类基础数据类型:标量scalar, 向量vector, 张量tensor.这三个数据类型,也是OpenFOAM中最基础的三个类。field类:在上述数据类的基础上,增加场(field)的概念,就引入了标量场scalarField, 向量场vectorField, 张量场tensorField。几何场类GeometricField class:比field类高级一点的就是几何场类GeometricField class,其相比field class多了纪录场位..
2021-08-15 14:44:36
1527
原创 C++中for(auto a:b)的用法。
本博客只作为自己的一个笔记使用:参考:c++中的for(auto a:b)用法(1)for(auto a:b)中b为一个容器,效果是利用a遍历并获得b容器中的每一个值,但是a无法影响到b容器中的元素。(2)for(auto &a:b)中加了引用符号,可以对容器中的内容进行赋值,即可通过对a赋值来做到容器b的内容填充。eg:for (auto& y : bobSizes)int x = y + delta;bobSizes里面是[1,2 ,3]。x=1+ de.
2021-07-13 16:52:19
3073
原创 C++accumulate()的使用方法
本博客只作为自己的一个笔记使用:accumulate(A.begin(), A.end(), 0) // 累加begin()到end(),初值为0eg: int sumA = accumulate(aliceSizes.begin(), aliceSizes.end(), 0); int sumB = accumulate(bobSizes.begin(), bobSizes.end(), 0);...
2021-07-13 16:28:03
327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人