C++基础学习
alike_meng
好菜啊,怎么办
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
十进制转换为十六进制字符串
#include<iostream>#include<stdlib.h>using namespace std;int main(){ int num =100; char s[100]; _itoa_s(num, s,100,16); cout << s << endl; return 0;}借助函数itoa,不但可以从整型转化成字符串,而且可以规定对应的进制。 但报了错,根据提示在前面加了_,即_itoa,在原创 2020-05-12 01:48:29 · 522 阅读 · 0 评论 -
最长不重复子串的长度
思路:维持两个指针来计算最长不重复子串长度如果没有重复的字符,就左指针不动,右指针右移如果有一个字符重复了,那么左指针往右移动如何确定重复:用一个容器,将对应字符的ascii作为下标,该下标里的值存放的是这个字符的下一个位置。也就是当某个字符重复了,左边的指针就应该移动到下一个位置。#include<iostream>#include<algorithm>#include<vector>using namespace std;int lengthOfL原创 2020-05-12 01:25:00 · 375 阅读 · 0 评论 -
用set给vector去重
#include<iostream>#include<vector>#include<set>using namespace std;int main(){ vector<int>res; res = { 154,23,6,34,68,34,23,55,67 }; set<int>tmp(res.begin(), res...原创 2020-04-09 17:55:42 · 735 阅读 · 0 评论 -
C++查找字符串中是否有某个子串
#include<iostream>#include<string>using namespace std;int main(){ string a = "apple banana orange"; string b = "banana"; string::size_type idx = a.find(b); if (idx != string::np...原创 2020-04-09 16:59:09 · 1542 阅读 · 0 评论 -
set用法
转自https://blog.youkuaiyun.com/fanhansheng/article/details/52419384强烈推荐这两个网址, 写得很不错http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/13/2636375.htmlhttp://blog.youkuaiyun.com/lyhvoyage/article/details/22989...转载 2020-03-22 16:25:17 · 238 阅读 · 0 评论 -
个人银行账户管理程序
银行账户的利息怎么算,先看个例子:程序写的年利率是1.5%,对下面程序中的zeng0账户,第5天存入5000,第45天存入5500,第90天结算。那么利息是:((45-5)5000+(90-45)(5000+5500))/365 *1.5% =27.64看了这个例子带入程序中的表达式,就能理解 accumulate的计算式accumulation + balance * (date - l...原创 2019-01-16 11:08:02 · 1631 阅读 · 0 评论 -
将字符串转化为数值
用类模板和字符串输入流就可以实现#include<iostream>#include<sstream>#include<string>using namespace std;template<class T>inline T fromString(const string &str){ istringstream is(st...原创 2019-01-31 16:41:30 · 577 阅读 · 0 评论 -
计算三角形面积(异常处理)
问题本身很简单,贴这个代码主要是想强调一下里面涉及到的异常处理#include<iostream>#include<cmath>#include<stdexcept>using namespace std;double area(double a, double b, double c) throw (invalid_argument){ if ...原创 2019-01-31 18:45:49 · 2181 阅读 · 0 评论 -
统计每个字母出现的次数(C++)
用映射来解决这个问题是比较方便的,因为映射是键和附加数组的二元组,存好之后就可以直接输出来。以前用C语言数组写过这个题,就没有这么方便了。#include<iostream>#include<map>#include<cctype>using namespace std;int main(){ map<char, int >s; ...原创 2019-01-29 18:03:59 · 12236 阅读 · 1 评论 -
标准模板库STL总结
以下主要根据慕课总结定义标准模板库 Standard Template Library是一些常用的数据结构和算法的模板的集合用STL就不用自己写大多数标准的算法和数据结构,而且可以获得很好的性能。基本概念 容器可以容纳各种数据类型的通用模板,是类模板 迭代器用于依次存放容器中的元素,类似于指针 算法用来操作容器中元素的函数模板算法本身和操作的数据类型...原创 2019-01-30 18:58:34 · 251 阅读 · 0 评论 -
函数模板和类模板
模板的应用是为了解决代码的通用性问题,通用性的代码应该不受数据类型的限制,可以自动适应类型的变化。使用模板实现了参数的多态。参数多态的含义是:将程序处理的对象类型参数化,是它可以处理多种不同类型的对象。函数模板:函数模板解决了一个问题,如果是要实现同一个功能不同类型的参数的函数,前面的方法都是函数重载,重载函数的函数体几乎都是一样的,只是参数不一样,这样通用性就不是很好,写个函数模板这个问题就...原创 2019-01-26 12:27:24 · 306 阅读 · 0 评论 -
函数重载
在学java的时候好像也写过一篇函数重载,其实概念上是很简单的东西,这篇想补充一下重载的一些规则,免于以后写出错误的程序。函数重载的定义:两个及以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数进行最佳匹配,自动确定调用哪一个函数。其实可以看做是几个函数,他们实现几乎相同的功能,所以用了相同的名字,但是数据有细微差别,所以编译器使用的时候要稍微判断一下...原创 2019-01-15 15:31:47 · 1789 阅读 · 0 评论 -
深复制浅复制的一点理解
讨论这个问题主要是为了知道既然有默认的复制构造函数为什么有时候还要自己写复制构造函数。代码有点长,主要看结构。这是一个浅复制的例子,用了默认的复制构造函数,结果程序崩了。看看为什么#include<iostream>#include<cassert>using namespace std;class Point{public: Point() :x(0),...原创 2019-01-17 21:29:11 · 218 阅读 · 0 评论 -
二进制数的编码表示
首先,对于一个有符号数,最高位是表示这个数字的正负号的。0是正,1是负。先了解一个概念,一个数在机器里表达的形式叫 机器数 ,他代表的数值叫这个机器数的 真值。二进制编码的实质其实是对负数的编码,因为正数的原码、反码、补码都一样。1.原码规则:将一个数的符号位数字化为0或1.X=+1111111 X原码=01111111X=-1111111 X原码=11111...原创 2019-01-13 18:41:42 · 1933 阅读 · 0 评论 -
C++的this指针
this指针一直没有理解好,昨天去看了一个慕课,觉得他对this指针的讲解很清楚,特意写一个简单的笔记供大家参考。我们都知道,C++是在C语言的基础上扩展来的,最初是没有C++编译器的。那么使用面向对象的C++写出来的程序必须要改写成C用C的编译器去编译。在改写的过程中,我们就会用到这个this指针。看一个例子://C++class Car{public:int price;voi...原创 2019-01-24 09:38:25 · 131 阅读 · 0 评论 -
C++中多态的基本概念
这篇很水,主要是给自己看,大家酌情略过。虚函数(虚函数可以参与多态,普通函数不行):在类的定义中,前面有virtual关键字的成员函数就是虚函数。virtual关键字只用在类定义的函数声明里,写函数体的时候不用构造函数和静态成员函数不能是虚函数多态的表现形式:1.派生类的指针可以赋值给基类的指针通过基类指针调用基类和派生类的同名虚函数时:若该指针指向一个基类对象,那么被调用的是基...原创 2019-01-24 11:50:21 · 976 阅读 · 0 评论 -
反转整数
这里为什么用到了do-while呢,因为do-while是先执行后判断的循环结构,对于这个问题,如果输入的数字是0,他也能输出一个反转的0,这一点用while循环就不行了。#include&lt;iostream&gt;using namespace std;int main(){ int x; int lowest; //前一位数 cout &lt;&lt; "enter...原创 2019-01-14 11:00:51 · 210 阅读 · 0 评论 -
求圆周率π的值
题目的算法是这样的:π的表达式:π=16arctan(1/5)-4arctan(1/239)arctan(x)用级数展开式计算 :arctan(x)=x - x^3 /3 + x^5 /5- x^7/7 +…算到某项小于10^-15为止分析一下:1.每一项的分子的绝对值都比上一项多x^22.每一项的分母都是+2增长3.为正数的项的特点是i%4=1,因为每次加2,一次为负,一次为正...原创 2019-01-14 15:20:57 · 2421 阅读 · 0 评论 -
判断数字回文
判断1~1000有多少个数字回文回文是指各个数字左右堆成的整数判断数字回文的思想:就是把该数字的回文数字求出来,然后比较两者是否相等求回文是通过循环将最高位变成最低位,次高位变成次低位…结合除以10和取余就可以实现这个操作了第一次取余,就能将最低位取出来,变成最高位需要几次乘十,可以看到,i/10执行几次,m10就要执行几次,当i/10为0的时候,m10也实现了把最低位变成最高了。#i...原创 2019-01-14 15:40:35 · 745 阅读 · 0 评论 -
求sinx
还是用的级数表达式sinx= x/1! -x^3/2! +x^5/5! -x^7/7!即对 (-1)^(n-1) x^(2n-1)/(2n-1)! 求和这个跟前面一篇写的求arctan的思想相似特征:1.每一项的下一项与该项的符号相反2.每一项是前一项乘以 x*x/(2n-1)(2n-2) 这里包含了符号#include<iostream>#include<cm...原创 2019-01-14 16:10:16 · 960 阅读 · 0 评论 -
汉诺塔问题
汉诺塔问题:有三根针A,B, C。A针上有n个盘子,盘子大小不等,大的在下,小的在上,要把这n个盘子从A针移动到C针,在这个过程中可以借助B针,每次只允许动一个盘子,而且在移动的过程中,这三根针上都保持大盘子在下小盘子在上。把整个思想都写到下面这张图上了,请仔细看。为了方便想,假如盘子的个数是3个,以下是移动的过程,通过这个过程我们能总结出一些规律。以下为源代码#include<...原创 2019-01-14 17:09:51 · 554 阅读 · 1 评论 -
条件编译指令#ifndef
条件编译指令组合起来有几种不同的形式,实现不同的用途。可以让一个源程序在不同的编译条件下产生不同的目标代码。下面介绍一种经常出现的情况:比如有一个头文件叫head.h会看到有些程序写成这样:#ifndef HEAD_H#define HEAD_H………#endif这一段是什么意思呢?这一段其实是等同于这样的:#if ! defined(HEAD_H)#define HE...原创 2019-01-17 14:24:27 · 629 阅读 · 0 评论
分享