数据结构
骑鹿人
骑鹿人
展开
-
C++ map根据value进行排序以及根据key倒序
map有key和value如果用map,默认是按key排序用unordered_map则不排序那么如何按照value进行排序呢:一个很简单的做法就是用vector存map的key和value,因为sort方法只能对vector等进行排序,可以对sort施加约束:#include<iostream>#include<unordered_map>#include<vector>#include<algorithm>#include&l原创 2021-07-04 20:31:00 · 2187 阅读 · 1 评论 -
C++实现二叉树的递归与非递归前中后序遍历
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} TreeNode(int x, TreeNode *left, TreeNode *right) : val(x),.原创 2021-04-01 21:45:49 · 342 阅读 · 0 评论 -
关于python,C++等浮点数的数据精度问题解决办法(如int(0.29*100)不等于29,3.8*3.9=14.819999999等等)
简单来说只要使用IEEE_754标准来存储浮点数的语言都存在这种问题,出现的原因就是小数在转换成二进制的过程中由于位数的限制不能完全表示这个小数导致精度丢失。double型的0.29*100=28.9999999...;或是0.14*100=14.0000...000001可以用round()四舍五入用法如double a=0.14; cout<<round(a*100);而round(a*100)此时便等于14。...原创 2020-08-07 20:03:54 · 1520 阅读 · 1 评论 -
C++ 二维vector删除固定位置元素(比如第i行第j列)以及删除某一行/列元素
a[1].erase(a[1].begin() + 2);设二维vector为a,删除第2行第3列的数字如上代码同理,删除第i行,第j列代码为:a[i-1].erase(a[i-1].begin() + j-1);原创 2020-08-03 14:53:55 · 7134 阅读 · 1 评论 -
C++二维vector根据第n列进行排序
对vector<vector<int>>根据第n列进行排序,输入程序如下所示。for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> x; a[i].push_back(x); } }如n,m都等于3,输入2 1 5 3 4 1 1 6...原创 2019-10-18 22:49:36 · 2083 阅读 · 1 评论 -
记录一下c++几种基本排序算法的简单实现(int数组)
#include<iostream>#include<string>using namespace std;void swap(int *a, int *b){ int temp; temp = *a; *a = *b; *b = temp;}/*插入排序*/void InsertSort(int *a, int n){...原创 2018-10-10 00:55:46 · 557 阅读 · 0 评论