- 博客(22)
- 收藏
- 关注
原创 Code::Blocks中static constexpr编译报错:undefined reference to “class::INFTY“
(C++98 风格兼容的方法),这种方法可以确保变量有正确的定义,让链接器能够找到它。
2024-10-03 21:25:27
428
原创 C++ bitset
C++中不允许使用变量作为数组的长度定义数组,必须为常量值,c++中所有的内存需求都是在程序执行前通过定义的常量来确定的。(另外bitset变量实际上是按照字节数存储,如。这样要求是因为编译器在。
2023-07-27 23:05:24
704
1
原创 error: ambiguates old declaration ‘double round(double)’
今天在调试代码的时候遇到错误,在Stack Overflow找到了前人踩过的坑,记录一下。链接:https://stackoverflow.com/questions/14045643/error-ambiguates-old-declaration-double-rounddouble#include <iostream>#include <cmath>using namespace std;int round(double number);int main(){
2021-03-07 22:29:20
895
原创 STL算法-17堆(排序)算法
堆(排序)算法make_heap():建堆push_heap():插入堆元素pop_heap():删除堆元素sort_heap():堆排序重排成普通排序#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ vector<int> ivec; for (int i = 3; i <= 7; ++i)
2020-12-22 14:39:31
139
原创 STL算法-16根据第n个元素排序
根据第n个元素排序nth_element(b, n, e)nth_element(b, n, e, p)对比partition()算法容器元素排序后,使第n个位置上元素就绪#include <iostream>#include <deque>#include <algorithm>#include <functional>#include <iterator>using namespace std;int main()
2020-12-22 08:33:13
101
原创 STL算法-15局部排序
局部排序partial_sort(b, se, e)partial_sort(b, se, e, p)partial_sort_copy(sb, se, db, de)源区间[sb, se),目标区间[db, de)返回值:复制后的元素的下一个位置partial_sort_copy(sb, se, db, de, p)默认从小到大升序排序。partial_sort()代码示例#include <iostream>#include <deque>#inc
2020-12-21 22:48:27
158
原创 STL算法-14对所有元素排序
对所有元素排序sort(b, e):默认从小到大排序sort(b, e, p)stable_sort(b, e)stable_sort(b, e, p)注意:不适用于list,因为list不可使用随机存取迭代器,排序算法要求使用随机存取迭代器,list有成员函数sort().sort()代码示例#include <iostream>#include <deque>#include <algorithm>#include <functional
2020-12-21 19:58:13
65
原创 STL算法-13重排和分区
重排和分区random_shuffle():随机重排partition():数据分区,符合规则的数据前移。返回迭代器,指向分区后中间的位置。谓词决定分区规则。分区不稳定。stable_partition():#include <iostream>#include <vector>#include <list>#include <set>#include <algorithm>#include <functi
2020-12-21 08:12:06
111
原创 STL算法-12排列组合
排列组合排列组合前的数据必须先排序。next_permutation():原始数据为升序,从小到大排列prev_permutation():原始数据为降序,从大到小排列函数返回值为false:所有排列组合都已经排完#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ vector<int> ivec; ive
2020-12-20 23:22:33
274
原创 STL算法-11逆转和旋转
逆转和旋转reverse()reverse_copy()rotate()retate_copy()#include <iostream>#include <vector>#include <list>#include <algorithm>#include <functional>#include <iterator>using namespace std;int main(){ vector<
2020-12-20 20:56:42
148
原创 STL算法-10删除性算法
删除性算法remove()remove_if()remove_copy()remove_copy_if()unique()unique_copy()并不是真正的删除,而是把后面的元素前移,覆盖被删除元素(逻辑删除),真正删除需要用erase():将算法与容器分离返回新的逻辑终点remove()和remove_if()#include <iostream>#include <vector>#include <list>#include <
2020-12-20 15:48:51
160
原创 STL算法-09替换算法
替换算法replace(b, e, ov, nv)replace_if(b, e, p, v)replace_copy(b1, e1, b2, ov, nv)replace_copy_if(b1, e1, b2, p, v)#include <iostream>#include <list>#include <algorithm>#include <functional>#include <iterator>using n
2020-12-20 15:09:13
92
原创 STL算法-08填充新值
填充新值fill(b, e, v):用固定常量v填充迭代器[b, e)区间元素。fill_n(b, n, v):可以指定填充个数n,若为空,则必须使用插入迭代器generate(b, e, p)generate_n(b, n, p)#include <iostream>#include <list>#include <string>#include <algorithm>#include <iterator>using n
2020-12-18 09:53:16
99
原创 STL算法-07交换算法
交换算法swap_ranges(b, e, b2):其他交换算法:容器的swap()成员函数赋值操作#include <iostream>#include <vector>#include <deque>#include <algorithm>using namespace std;int main(){ vector<int> ivec1; vector<int> ivec2; ivec1.
2020-12-17 21:57:23
98
原创 STL算法-06复制元素
复制元素copy():将数据从一个容器拷贝到另一个容器,或将数据从容器的一个区间拷贝到另一个区间。copy_backward()拷贝时必须保证有足够的空间。没有copy_if()算法,可以使用remove_ copy_if()算法复制过程中要逆转元素次序,使用reverse_copy()算法把容器内所有元素赋值给另一个容器,要使用赋值操作符或容器的assign()成员函数复制过程中别除某些元素,使用remove_copy()和remove_copy_if()算法复制过程中修改元素,使用tr
2020-12-17 09:02:52
146
原创 STL算法-05区间的比较
区间的比较equal(b, e, b2):第一个容器迭代器[b, e)和第二个容器b2起始的迭代器指向的数据进行比较是否相等。equal(b, e, b2, p):mismatch(b, e, b2):查找两个容器中第一个不相等的数据。mismatch(b, e, b2, p)lexicographical_compare(b, e, b2, e2):比较第一个迭代器区间[b, e)是否比第二个[b2, e2)小lexicographical_compare(b, e, b2, e2, p)
2020-12-16 19:25:07
240
原创 STL算法-04for_each和transform
STL算法-for_each()for_each(b, e, p)使用for_each()算法遍历数据使用for_each()和函数对象修改数据使用for_each()的返回值#include <iostream>#include <vector>#include <algorithm>using namespace std;void print(int elem){ cout << elem << ' ';}t
2020-12-15 10:13:26
205
原创 STL算法-03查找算法
常用查找算法find()find_if()search_n()search()find_end()first_first_of()adjacent_find()find()和find_if()find()和find_if()是线性查找,查找速度较慢。查找的结果是迭代器。如果是已序区间,可以使用已序区间查找算法:binary_search()includes()lower_bound()upper_bound()关联式容器有等效的成员函数find(),时间复杂度为对数
2020-12-15 10:12:06
189
原创 STL算法-02最小值和最大值
最小值和最大值min_element(b, e):返回一个迭代器min_element(b, e, op):max_element(b, e):max_element(b, e, op):第三个参数op可写可不写,max_element()和min_element()默认是从小到大排列,然后max_element()输出最后一个值,min_element()输出第一个值,但是如果自定义的op函数写的是从大到小排列,那么会导致max_element()和min_element()的两个结果是对调的
2020-12-15 10:07:37
270
原创 STL算法-01元素计数
01-元素计数countcount_if:有_if则允许传递一个函数或一个函数对象作为谓词count和count_if是所有容器都可以使用的通用算法,线性查找,相较于成员函数,速度较慢。关联容器的等效成员函数set.count:比count更快,因为set已排序。multiset.countmap.countmultimap.count代码示例#include <iostream>#include <algorithm>#include <ve
2020-12-15 09:36:09
176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人