【C++】break与continue
C++14种常见的算法与数据结构:
- 数组(Array):依据分配内存的方式。数组属于狭义的顺序表,可分为静态数组、动态数组。
- 链表(Linked List):单链表、双向链表、循环链表等。常见的有带头结点的单链表、带头结点的双向循环链表。
- 栈(Stack):顺序栈(共享栈等),链式栈。
- 队列(Queue):顺序队列(循环队列……)、链式队列(双端队列……)。
- 树(Tree):满二叉树、完全二叉树、线索二叉树、二叉搜索树(Binary Search Tree)、平衡二叉树(AVL Tree)、红黑树(Red-Black Tree)、哈夫曼树等。
- 堆(Heap):大根堆、小根堆等(用于堆排序)。
- 图(Graph):图的遍历、最短路径、最小生成树等。
- 哈希表(Hash Table):哈希函数、哈希冲突解决(开放地址处理法等)等。
- 字符串(String):字符串匹配、字符串压缩等。
- 向量(Vector)
- 字典(Dictionary)
- 排序算法:如冒泡排序、插入排序、选择排序、快速排序、归并排序等。
- 搜索算法:如线性搜索、二分搜索等。
这些算法和数据结构在不同的应用场景中都有广泛的应用。例如,数组和链表常用于存储和操作线性数据,栈和队列常用于实现函数调用和任务调度,树和图常用于表示和处理关系型数据,哈希表常用于快速查找和插入数据,字符串常用于处理文本数据,向量常用于动态数组的操作,字典常用于存储键值对数据。
纠正:
· 数组 & 向量:本质一回事。向量就是动态扩容的数组,属于顺序表。
· 哈希表 & 字典:完全等价。字典就是哈希表(Map)的别名。
· 栈 & 队列:属于操作受限的线性表,底层既可用数组实现(顺序),也可用链表实现(链式)。
岗位JD编写不严谨。ADT(abstract data type)应该是6大类,才更为主流。
break与continue的用法
在 C++ 中,break和continue是用于控制循环结构的关键字。
break
break关键字用于立即退出循环结构,程序将继续执行循环后面的语句。它可以用于for、while和do-while循环。例如:
for (int i = 0; i < 10; i++) { if (i == 5) { break; } std::cout << i << " "; }在上述例子中,当
i的值等于 5 时,break语句被执行,循环立即终止,输出结果为:0 1 2 3 4 。
continue
continue关键字用于跳过本次循环的剩余部分,直接开始下一次循环。它也可以用于for、while和do-while循环。例如:
for (int i = 0; i < 10; i++) { if (i == 5) { continue; } std::cout << i << " "; }在上述例子中,当
i的值等于 5 时,continue语句被执行,本次循环的剩余部分(即std::cout << i << " "语句)被跳过,直接开始下一次循环,输出结果为:0 1 2 3 4 6 7 8 9 。