
C++算法
小鸟在飞想
这个作者很懒,什么都没留下…
展开
-
使用c++自带的栈完成对回文字符串(正反读都相同的字符序列)的判别
注:size_t声明表示一种无符号整数,他是一种能够以字节为单位表示任何对象大小的类型,size_t 通常是 sizeof 运算符的返回类型,广泛用于标准库中以表示大小和计数#include<iostream>#include<string>#include<vector>#include<stack>using std::vector...原创 2019-04-24 10:20:20 · 470 阅读 · 0 评论 -
C++ 链表:从尾到头打印链表
基于传统指针实现:#include<iostream>#include<stack>#include<deque>using namespace std;struct ListNode { int value_; ListNode*next_;};//从尾部添加链表void add_to_tail(ListNode**phead, int...原创 2019-07-13 23:12:36 · 340 阅读 · 0 评论 -
C++链表 在forward_list首尾处添加元素
#include<iostream>#include<forward_list>using namespace std;int main() { forward_list<int> a{ 1,2,3,4,5,6,7,8 }; a.insert_after(a.before_begin(), 0); auto prec = a.before_begi...原创 2019-07-14 17:58:57 · 1162 阅读 · 0 评论 -
C++ 链表 反转链表
#include <iostream>using namespace std;struct ListNode{ int value_; ListNode * next_;};void add_to_tail(ListNode**phead,int value){ ListNode *pnew = new ListNode(); pnew->value_ = v...原创 2019-07-15 11:18:26 · 132 阅读 · 0 评论 -
C++ 基于动态规划的斐波那契数列
#include <iostream>#include<memory>using namespace std;//使用传统动态内存分配,在程序结束需要delete,否则会造成内存泄漏/*int * fibonacci(int num){ int *a = new int[num+1]; a[0] = 0; a[1] = 1; for(int i=2;i&l...原创 2019-07-16 11:24:41 · 1334 阅读 · 0 评论 -
C++ 遍历整数各位的数字
例如输入一个数字要求输出该数字各个位上偶数的和,如输入5584,输出12#include<iostream>using namespace std;int main() { int in; cin >> in; int out=0; int temp; while (in > 0) { temp = in % 10; if (temp % ...原创 2019-07-21 21:34:30 · 2029 阅读 · 0 评论 -
C++ 树的前序,中序,后序,层序遍历,基于递归,基于循环
#include<iostream>#include<string>#include<deque>#include<queue>#include<stack>using namespace std;struct TreeNode { string value_; TreeNode *left_; TreeNode *r...原创 2019-07-27 23:24:23 · 275 阅读 · 0 评论 -
C++ 对unordered_map 进行变通按值排序
下面代码利用对vector<int> in 中的序列按照数字个数多少进行排序,个数相等的不改变原序列顺序注意:unorder_map是乱序,不会按照插入元素序列排序,所以第二个程序是之前犯得错误#include<iostream>#include<algorithm>#include<vector>#include<map>...原创 2019-08-05 18:57:52 · 9410 阅读 · 0 评论 -
C++ 利用队列遍历一个序列的连续子序列
#include<iostream>#include<vector>#include<deque>using namespace std;int main() { vector<int> A{ 2,1,4,3,1,4,5,6 }; for (auto temp : A) cout << temp << " ...原创 2019-08-08 23:41:58 · 1040 阅读 · 0 评论 -
C++ 利用sort和反向迭代器实现逆序排序
#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){ vector<int> a{2,7,6,9}; for(auto it=a.cbegin();it!=a.cend();it++) cout<<*...原创 2019-06-18 11:00:20 · 2159 阅读 · 0 评论 -
C++ 利用反向迭代器反向输出string,以及string to int ,int to sting的变换
#include<iostream>#include<string>#include<algorithm>using namespace std;int main() { int input; cin >> input; string str_input = to_string(input); //to_string将int转换为st...原创 2019-06-16 22:37:28 · 1336 阅读 · 0 评论 -
使用c++自带的队列完成啊哈算法第二章第1节解密QQ号
#include<iostream>#include<string>#include<vector>#include<stack>#include<queue>using std::queue;using std::vector;using std::string;using std::stack;using std::...原创 2019-04-24 12:15:38 · 340 阅读 · 0 评论 -
C++ 使用泛型算法sort, unique完成排序,删除重复
sort,会重新排列序列中的数据,按照元素类型的<运算符,进行字典排序,例如:a<b。unique, 会将序列中相邻的重复项保留一个,重复的排到末尾(顺序不明),并返回一个指向一个不重复范围末尾的迭代器。erase, 用于删除容器中的元素。标准库中的算法操作的对象是迭代器,而不是容器,因此,算法不能直接添加或删除元素。#include<vector>#i...原创 2019-05-30 15:57:49 · 1993 阅读 · 0 评论 -
C++ 利用关联容器set 进行筛重,排序。
set容器中如果添加的元素重复,会自动被跳过,并且set容器会自动按照字典顺序排列#include<iostream>#include<string>#include<set>#include<algorithm>using namespace std;int main(){ set<string> input;...原创 2019-05-30 16:37:20 · 249 阅读 · 0 评论 -
C++编写数的全排列
数字123的全排列,应用深度优先搜索原理#include<iostream>using namespace std;int a[4], book[4];void permulation(int step) { if (step == 4) { for (int i = 1; i <= 3; i++) { cout << a[i] <<...原创 2019-05-27 22:57:04 · 2563 阅读 · 0 评论 -
C++ 利用哈希表对字符串进行处理
定义一个函数,输入两个字符串,从第一个字符串中删除第二个字符串重复的字符#include <iostream>#include <map>using namespace std;string delete_duplicate_char(string str,const string str1) { if(str1.empty()) ret...原创 2019-06-13 14:07:36 · 1326 阅读 · 0 评论 -
C++ string之 substr(), append() 算法
题目描述•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。实现方法1:#include<iostream>#include<string>using namespace std;int main() { string str; int count = 0; int ...原创 2019-06-01 18:28:02 · 1079 阅读 · 0 评论 -
C++ 求质数
#include <iostream>using namespace std;void prime_num(int num){ while(num!=1){ for(int i=2;i<=num;i++){ if(num % i==0){ num/=i; cout<<i<<" "; break; } ...原创 2019-06-14 09:41:09 · 3289 阅读 · 0 评论 -
C++ 最长上升子序列
基于动态规划的思想#include<iostream>#include<algorithm>#include<vector>#include<set>#include<map>#include<unordered_map>using namespace std;int main() { int arr[...原创 2019-08-07 21:43:19 · 1958 阅读 · 0 评论