
c/c++
文章平均质量分 86
Allenlzcoder
拒绝拖延症!!!
展开
-
C++中STL容器利用迭代器删除元素小结
C++中STL容器利用迭代器删除元素小结在STL容器中删除元素,容易导致迭代器失效,故应该清楚明白其用法,现在总结一下。 转载自:https://blog.csdn.net/yf_li123/article/details/75003425#comments1.关联容器对于关联容器(如map, set, multimap, multiset), 删除当前的iterator, 仅仅会使...转载 2018-09-09 17:21:16 · 3215 阅读 · 1 评论 -
C++ int与string的相互转换
C++ int与string的相互转换本博客转载自:https://www.cnblogs.com/smile233/p/8379802.htmlint转换成stringto_string()函数c++11标准增加了全局函数std::to_string: string to_string (int val); string to_string (long val); st...转载 2018-07-20 00:01:02 · 404 阅读 · 0 评论 -
LeetCode 23. Merge k Sorted Lists
LeetCode 23. Merge k Sorted ListsSolution1:我的答案 确实很慢啊/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NU...原创 2018-07-02 16:16:55 · 279 阅读 · 0 评论 -
【DFS】LeetCode 17. Letter Combinations of a Phone Number
LeetCode 17. Letter Combinations of a Phone NumberSolution1:我的答案利用8皇后同样的方法,回溯+递归class Solution {public: vector<string> letterCombinations(string digits) { if (digits.size()原创 2018-06-16 12:55:55 · 249 阅读 · 0 评论 -
【回文串14】LeetCode 680. Valid Palindrome II
LeetCode 680. Valid Palindrome IISolution1:我的答案 复杂度是O(n)O(n)O(n),不算好啊。。 注意:对于c++中string对象常用的insert()和erase()操作,记录如下,摘抄自《C++ Primer (第五版)》P323 操作 说明 s.insert(pos, args) 在pos之前插入args指...原创 2018-05-29 19:01:54 · 248 阅读 · 0 评论 -
【回文串3】LeetCode 125. Valid Palindrome
LeetCode 125. Valid PalindromeSolution1:我的答案复杂度为O(n)O(n)O(n),写法不是很简练啊。class Solution {public: bool isPalindrome(string s) { int n = s.size(); if (n <= 1) return true;...原创 2018-05-29 16:58:04 · 234 阅读 · 0 评论 -
【重点】LeetCode 146. LRU Cache
LeetCode 146. LRU Cache本博客转载自:http://www.cnblogs.com/grandyang/p/4587511.html 这道题让我们实现一个LRU缓存器,LRU是Least Recently Used的简写,就是最近最少使用的意思。那么这个缓存器主要有两个成员函数,get和put,其中get函数是通过输入key来获得value,如果成功获得后,这对(key...转载 2018-05-29 15:11:44 · 223 阅读 · 0 评论 -
避免C++求余数出现负数解决办法
避免C++求余数出现负数解决办法本博客转载自:https://blog.csdn.net/qq_32734731/article/details/54810085 在学带余除法时上面只提到了正整数的带余除法,余数自然应该是非负不大于除数的数了;很多地方也回避了负数的除法中余数是正数还是负数。避免C++求余数出现负数解决办法:假设被除数是 a,除数是 b。有两种方法: 1.先令 ...转载 2018-05-14 22:52:17 · 4253 阅读 · 0 评论 -
C++——unique()和unique_copy()
C++——unique()和unique_copy()本博客转载自:https://blog.csdn.net/qq_35781950/article/details/701457461.unique()的用法,unique()两个参数,第一个是首地址,第二个是末地址(stl区间默认为左闭右开), 他的原理是通过相邻比较(这就要求在处理之前用sort排序)删除重复的元素,但是不...转载 2018-05-07 20:25:40 · 439 阅读 · 0 评论 -
C++标准库——advance() & distance() & iter_swap()
C++标准库——advance() & distance() & iter_swap()本博客转载自:https://blog.csdn.net/lanzhihui_10086/article/details/418055031.advance()void advance(pos, n);1.使名为pos的input迭代器步进(或步退)n个元素; 2.对Bid...转载 2018-05-07 20:20:20 · 510 阅读 · 0 评论 -
vector中resize()和reserve()区别
vector中resize()和reserve()区别本博客转载自:https://blog.csdn.net/jocodeoe/article/details/9230879 先看看《C++ Primer》中对resize()函数两种用法的介绍:1.resize(n)调整容器的长度大小,使其能容纳n个元素。 如果n小于容器的当前的size,则删除多出来的元素。 否则,添加采...转载 2018-05-07 09:53:10 · 329 阅读 · 0 评论 -
程序员面试金典——18.10字符串变换
程序员面试金典——18.10字符串变换Solution1:我的答案。穷举法,个人认为此题还是有点难度的。。。 利用了倒推法以及很高的时间复杂度才解决,并不值得推崇呀。class Change {public: int countChanges(vector<string> dic, int n, string s, string t) { ...原创 2018-05-04 11:15:40 · 319 阅读 · 0 评论 -
程序员面试金典——18.9实时中位数
程序员面试金典——18.9实时中位数Solution1:我的答案。利用排序,比较弱智。。class Middle {public: vector<int> getMiddle(vector<int> A, int n) { // write code here vector<int> res; ...原创 2018-05-03 10:59:38 · 442 阅读 · 0 评论 -
程序员面试金典——番外篇之下一个较大元素II
程序员面试金典——番外篇之下一个较大元素IISolution1:我的答案,时间复杂度为O(n2)O(n2)O(n^2)垃圾算法class NextElement {public: vector<int> findNext(vector<int> A, int n) { // write code here vecto...原创 2018-04-30 22:16:38 · 390 阅读 · 0 评论 -
程序员面试金典——番外篇之约瑟夫问题2
程序员面试金典——番外篇之约瑟夫问题2参考网址:https://www.nowcoder.com/profile/9270572/codeBookDetail?submissionId=15779150Solution1:解题思路:在c++中利用vector来做 1. 每一轮报数完毕之后,将vector尾部节点复制到首部同时删除尾部结点,开始新一轮的报数。 2. vector中...原创 2018-04-25 10:13:52 · 317 阅读 · 0 评论 -
【重点】【DFS+回溯】剑指offer——面试题66:矩阵中的路径(回溯法)
剑指offer——面试题66:矩阵中的路径(回溯法)1 算法及代码此题是回溯法的典型例题,思路以及代码均是书中所讲。要具体实现很有参考价值,借鉴之! 现在把书中代码贴在下面,并对其中用到的一些既熟悉又陌生的语法知识进行总结。class Solution {public: bool hasPath(char* matrix, int rows, int cols, c...原创 2018-04-06 16:50:26 · 480 阅读 · 1 评论 -
C++标准库之stack
C++标准库之stack文章转载自:http://www.cnblogs.com/lulizhiTopCoder/p/7775297.html C++库以提供“模板”为主。所谓模板,是指不必预先制定类型的函数或类。我们可以借助STL(标准模板库 Standard Template Library, STL)提供的高效算法来管理数据。为应对多种需求,STL为用户提供了多种名为容器(Contai...转载 2018-03-30 12:27:22 · 309 阅读 · 0 评论 -
[C++基础]队列queue中的常用函数
[C++基础]队列queue中的常用函数本博客转载自:https://www.cnblogs.com/xuning/p/3321733.html 在C++中只要#include即可使用队列类,其中在面试或笔试中常用的成员函数如下(按照最常用到不常用的顺序) 1. push() 2. pop() 3. size() 4. empty() 5. front() 6. back() ...转载 2018-03-30 11:43:38 · 8292 阅读 · 0 评论 -
C++中对string对象的初始化及赋值方式总结
C++中对string对象的初始化及赋值方式总结C++中的string对象是最常用的几种数据类型之一。 初始化string对象的方式有以下几种:string s1; //默认初始化,s1是一个空串string s2(s1); //s2是s1的副本string s3("value"); //直接初始化,s3是字面值"value"的副本,除了字面值最...原创 2018-03-29 21:25:43 · 15172 阅读 · 1 评论 -
auto和decltype的用法总结
auto和decltype的用法总结本博客转载自:https://www.cnblogs.com/XiangfeiAi/p/4451904.html1 auto1.1 auto的作用一般来说, 在把一个表达式或者函数的返回值赋给一个对象的时候, 我们必须要知道这个表达式的返回类型, 但是有的时候我们很难或者无法知道这个表达式或者函数的返回类型. 这个时候, 我们就可以使用aut...转载 2018-03-13 14:17:26 · 433 阅读 · 0 评论 -
C/C++中struct结构体定义变量的3种方法及初始化
c语言中结构体定义变量的3种方法本博客整理自http://blog.csdn.net/zunfo/article/details/514946311.先定义结构体,然后再定义结构体变量struct Student{ char name[21];//学生姓名 int age; //学生年龄};注意: 1)结构体定义完成以后,计算机并不会给结构体分配...原创 2018-03-11 17:43:57 · 19615 阅读 · 2 评论 -
指针函数与函数指针的区别
指针函数与函数指针的区别博客转载自:http://nevel.cnblogs.com/p/6370264.html 在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数指针,反之则是指针函数。 今天我们从头把它搞清楚 首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数,函数返回类...转载 2018-03-10 17:52:41 · 158 阅读 · 0 评论 -
C语言中的空字符'\0'
C语言中的空字符’\0’本博客整理自: http://blog.csdn.net/suluner/article/details/54408638 https://zhidao.baidu.com/question/578593062.html一、空字符在c语言中空字符用’\0’表示。 ‘\0’对应的整型值是0,所以给一个字符变量赋值为空字符时,以下两种都是可以的:cha...转载 2018-03-04 10:48:42 · 8294 阅读 · 0 评论 -
如何理解 scanf("%*s,str")?
最近在看《C Primer Plus(第五版)》,有这么一行代码:scanf("%*s");//书中解释作用是跳至下一空白符本文对网上的一些解释进行汇总整理,主要参考的网址有: [1]http://bbs.csdn.net/topics/390389078 [2]https://zhidao.baidu.com/question/526983012.html [3]https://z...原创 2018-03-02 11:04:59 · 1696 阅读 · 1 评论 -
C++——二维vector初始化大小方法
C++——二维vector初始化大小方法本博客转载自:http://blog.csdn.net/sinat_36053757/article/details/71053706 1.直接用初始化方法(刚开始没想到)vector<vector<int> > newOne(r, vector<int>(c, 0));2.用resize()来控制大小...转载 2018-02-28 16:58:02 · 1117 阅读 · 0 评论 -
C++11中容器迭代器操作总结
C++11中标准容器迭代器操作总结 我发现有必要对各类容器迭代器的操作做一个小小的总结,本文中的内容大多来自于《C++ Primer》(第5版)中相关章节的内容。 1.下面列出了容器迭代器支持的所有的操作(注意:forward_list迭代器不支持递减运算符(--))。 *iter 返回迭代器iter所指元素原创 2017-12-01 22:33:48 · 858 阅读 · 0 评论 -
对vector/string执行insert/erase操作后迭代器的情况说明
对vector/string执行insert/erase操作后迭代器的情况说明原创 2017-11-27 10:25:15 · 2103 阅读 · 0 评论 -
没有躲过的坑--vector使用erase后迭代器变成野指针
没有躲过的坑--vector使用erase后迭代器变成野指针以及remove和erase的区别 本博客转载自:http://blog.csdn.net/wangshubo1989/article/details/50121059和http://blog.csdn.net/vbanglev/article/details/1512521并做了适当修改。 vector上镜率转载 2017-11-27 01:02:00 · 1326 阅读 · 0 评论 -
C++获取文本文件字节数的一个小方法
C++获取文本文件字节数的一个小方法本博客转载自:http://blog.csdn.net/sayesan/article/details/45840337.1 调用ifstream打开一个文件2 调用seekg将get pointer置为文件末尾,seekg(0, ios_base::end)3 调用tellg获取总字节数,实际上获取的是get pointer相对于文件头的偏转载 2017-10-29 17:33:54 · 4844 阅读 · 0 评论 -
C++ 整型和字符串相互转换
C++ 整型和字符串相互转换本博客转载自:http://blog.csdn.net/u012400584/article/details/53898287,只转载了部分内容。itoa 功 能:把一整数转换为字符串 用 法:char *itoa(int value, char *string, int radix); 详细解释:itoa是英文intege转载 2017-10-29 16:42:15 · 2377 阅读 · 0 评论 -
atoi函数:c\c++中把字符串整数转换为int型整数
atoi函数:c\c++中把字符串整数转换为int型整数 atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。atoi( ) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等。可以通过isspace( )函数来检测),直到遇上数字或正负符号才开始做转换,而在遇到非数字或字符串结束时('\0')才原创 2017-10-28 22:41:47 · 977 阅读 · 0 评论 -
sizeof与strlen的区别
sizeof与strlen的区别 本博客转载自:http://www.cnblogs.com/carekee/articles/1630789.html一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立转载 2017-10-27 10:35:34 · 260 阅读 · 0 评论 -
c\c++中比较两个字符串或string对象是否相等
c\c++中比较两个字符串或string对象是否相等 在写程序的过程中,经常会遇到要比较两个字符串是否相等的情况。如果要比较的对象是char*字符串,则利用int strcmp(const char* s1,const char* s2) 当s1<s2时,返回为负数; 当s1==s2时,返回值= 0; 当s1>s2时,返回正数。 ...原创 2017-10-16 21:32:18 · 114881 阅读 · 3 评论 -
C++标准库---逆转元素reverse()&reverse_copy()
逆转元素次序reverse(beg,end)reverse_copy(sourceBeg,sourceEnd,destBeg)reverse_copy()返回目标区间内最后一个被复制元素的下一个位置,也就是第一个未被覆盖的元素;list提供了一个等效成员函数reverse(),不是重新赋值元素,而是重新安排指针,因此具有更佳性能;reverse()会将区间[转载 2017-10-09 09:15:39 · 433 阅读 · 0 评论 -
封装好的C++ md5类
博客转载自:http://blog.csdn.net/lindexi_gd/article/details/47005093在网上看到很多md5类,不过封好的很少,我就在网上看到一篇把他写的封装头文件 md5.h#ifndef _MD5_H#define _MD5_H#pragma warning(disable:4786)//来逗下#include #in转载 2017-09-05 10:45:54 · 691 阅读 · 0 评论 -
字符指针变量和字符数组的对比
使用字符数组和指针变量都能实现字符串的存储和运算,但它们两者之间是有区别的,不应混为一谈,主要有一下几点:(1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串中第一个字符的地址),绝不是将字符串放到字符指针变量中。(2)赋值方式。可以对字符指针变量赋值,但不能对数组名赋值。可以采用下面方法对字符指针变量赋值:char *a; //a为字符指针转载 2017-08-14 23:07:56 · 1175 阅读 · 0 评论 -
C++中new和delete来创建和释放动态数组
在C++编程中,使用new创建数组然后用delete来释放。一、创建并释放一维数组#includeusing namespace std;int main(){ int n; cin>>n; //分配动态一维数组 int *arr=new int[n]; for(int i=0;i<n;i++) cin>>a转载 2017-08-06 00:50:02 · 534 阅读 · 0 评论 -
c/c++中指针数组和数组指针的区别
1.数组指针(行指针),理解为指向数组的指针例如,定义:double (*pp)[m];括号()的优先级最高。首先pp是一个指针,指向一个双精度浮点型的一维数组,此数组长度为m。也即执行pp+1时,pp要跨过m个双精度浮点型数据长度。2.指针数组,理解为元素是指针的数组例如,定义:double *pp[m];方括号[]优先级最高,先和pp结合成一个数组,再由do转载 2017-08-06 00:31:58 · 669 阅读 · 0 评论