1 Willing_hope

尚未进行身份认证

我要认证

我要一往无前~

等级
TA的排名 14w+

【字符串相加、相乘等】

1、反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。class Solution {public: void reverseString(vector<char>& s) { int i = 0 , j = s.size()-

2020-08-03 16:45:54

【STL-string】

一、STL简介1、什么是STL?STL是是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包括数据结构与算法的软件框架。2、STL的六大组件仿函数、算法、迭代器、空间配置器、容器、配接器。3、STL的缺陷(1)STL库更新太慢(2)STL没有支持线程安全,并发环境下需要自己加锁(3)追求效率导致内部结构复杂(类型萃取等)(4)STL会导致代码膨胀(本质是模板语法导致的)二、String类1、string类简介(1)string类是表示字符串序列的类(2)其接口

2020-08-03 15:18:33

【string的模拟实现】

1、简单string类实现(深拷贝)namespace pz{ class string { public: //构造函数,无参和带参的 string() :_str(nullptr) {} string(char* str) :_str(new char[strlen(str) + 1])//在堆上多申请一个空间存\0 { strcpy(_str, str);//再将数据拷贝到代码段 } string(const string&s)//深拷

2020-08-03 11:05:46

【strcpy函数】

strcpy函数的使用strcpy()函数是C语言中的一个复制字符串的库函数。char * strcpy(char *dst,const char *src) { if((dst==NULL)||(src==NULL))return NULL;char *ret = dst; //[1]while ((*dst++=*src++)!='\0'); //[2]return ret;//[3] }一、const 修饰:源字符串参数用const修饰,防止修改源字符串;二、

2020-07-31 19:48:56

【模板】

1、泛型编程编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础2、模板分为函数模板和类模板(1)函数模板什么是函数模板?解:代表了一个函数族,该模板与类型无关,在使用时被参数化,根据**实参类型产生函数的特定类型版本。template<typename T>void Swap( T& left, T& right){T temp = left;left = right;right = temp;}注:template是定

2020-07-26 14:37:44

【了解单例模式】

1、设计一个类,只能在堆上创建对象方法:构造函数私有化将构造函数私有化,拷贝构造也要私有化(若对堆上创建的对象进行解引用并调用拷贝构造,同样可以在栈上创建对像。)提供一个静态函数,静态函数完成堆上对象的创建。class Test{ Test() { cout << "Test()" << endl; } ~Test() { cout << "~Test()" << endl; } Test(const Test&);/

2020-07-26 08:32:15

【C/C++内存管理】

1、c/c++内存划分图栈又叫堆栈,非静态局部变量/函数参数/返回值等等,栈是向下增长的。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。堆用于程序运行时动态内存分配,堆是可以上增长的。数据段–存储全局数据和静态数据。代码段–可执行的代码/只读常量2、C语言内存管理方式动态内存管理(1) 为什么要有动态内存管理?因为常规空间开辟的方式,开

2020-07-23 08:42:57

【指针传参问题C】

改变变量用一级指针,改变指针用二级指针1)改变值void fun(int *p){ int b = 100; p = &b; // 将p指向b,改变的是局部变量的值,实参不受影响}void fun2(int *p){ *p = 100; // 将p指向的变量赋值100,改变的是实参指针指向的值,实参会受到影响 //} //改变变量用一级指针,改变指针用二级指针,main(){ int .

2020-07-22 11:33:39

【关于类的练习】

1、计算一个类创建了多少个对象#include<iostream>using namespace std;class temp{ static int a;public: temp() { ++a; } temp(const temp& b) { ++a; } static int GetA() { return a; }};int temp::a = 0;int main(){ cout << temp::GetA(

2020-07-21 15:24:28

【c++类与对象下】

一、构造函数整体赋值与初始化列表赋值1、整体赋值class Date{public:Date(int year, int month, int day){_year = year;_month = month;_day = day;}private:int _year;int _month;int _day;};上面的代码为整体赋值,调用构造函数后,对象会有一个初值。但是,其只能称为赋初值****而不是初始化,因为初始化只能有一次,而构造函数体内可以多次赋值。2、初始

2020-07-21 10:07:43

【c++类与对象中】

类的六个默认成员函数构造函数析构函数拷贝构造赋值运算符重载取地址运算符重载const修饰的取地址运算符重载为什么要有这些默认成员函数?如果一个类,在初始化之前就调用了打印函数,则会导致输出的是一个随机值,为了避免这种情况,所以c++给了六种默认成员函数。并且任何一个类在不写的情况下都会自动生成6个默认成员函数。一、构造函数1、什么是构造函数?它的作用?构造函数就是在创建类对象的时候,由编译器自动调用,为对象进行初始化的一个特殊成员函数。它的名称和类名相同,并且在对象的声明周期

2020-07-12 20:21:47

【日期类的实现c++】

代码:#include<iostream>using namespace std;//实现一个日期类class Date{public: int GetMonthDay(int year, int month) { int monthDays[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (month == 2 && ((year % 4 == 0 &&

2020-07-12 19:12:20

【c++类与对象上】

C语言是面向过程的语言,而C++是面向对象的语言,那么类与对象到底是什么呢?1、什么是类?C++的类和结构体与C语言的结构体差不多,不过C语言结构体中只能定义变量,而C++的结构体和类内不仅可以定义变量,也可以定义函数。struct ListNode_C//c语言的结构体{ int _val; struct ListNode_c* _next; //只有加上struct才是一个类型 struct ListNode_c* _prev;};struct ListNode_CPP/.

2020-06-29 14:27:35

【c++基础1】

指针和引用的区别相同点:在语法概念上,引用是一个别名,没有独立开辟空间,和其引用的对象用同一块空间。在底层实现上实际是有空间的,因为引用是按照指针方式来实现的,即地址的赋值。不同点:引用在定义时必须初始化,指针没有要求引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体没有NULL引用,但有NULL指针在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数(32位平台下占4个字节)引用自加即引用的实体增加1,.

2020-06-28 22:13:48

【c++基础】

一、命名空间1、什么是命名空间?命名空间也称名字空间、名称空间等,它表示一个标识符可见的范围,一个标识符可以在多个名字空间中定义,它在不同的名字空间中的含义是互不相干的。2、为什么要有命名空间?使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染。名字空间污染:...

2020-06-28 20:47:45

【MP3光标位置】c++

题目描述:MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲,光标初始的位置为第1首歌。现在要实现通过上下键控制光标移动来浏览歌曲列表,控制逻辑如下:歌曲总数<=4的时候,不需要翻页,只是挪动光标位置。光标在第一首歌曲上时,按Up键光标挪到最后一首歌曲;光标在最后一首歌曲时,按Down键光标挪到第一首歌曲。其他情况下用户按Up键,光标挪到上一首歌曲;用户按Down键,光标挪到下一首歌曲。

2020-06-27 12:27:36

【洗牌】c++

题目描述:洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。 现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。接着把牌合并起来就可以了。 例如有6张牌,最开始牌的序列是1,2,3,4,5,6。首先分成两组,左手拿着1,2

2020-06-27 12:22:27

【练习2】

1、以下程序的输出结果是?#include <stdio.h> main(){char a[10]={ '1','2','3','4','5','6','7','8','9',0},*p; int i;i=8;p=a+i;printf("%s\n",p-3);}A 6B 6789C ‘6’D 789答:Bp指向9的位置以%s打印,会遇到\0结束2、以下能对二维数组a进行正确初始化的语句是()A int ta[2][]={{0,1,2},{3,4,5}};

2020-06-27 11:42:54

【练习】

1、有以下程序#include#include<stdio.h>using namespace std;int main(){int m=0123, n = 123;printf("%o %o\n", m, n);return 0;}程序运行后的输出结果是:A 0123 0173B 0123 173C 123 173D 173 173答:D %o以八进制输出2、7. 关于"深拷贝",下列说法正确的是()A 会拷贝成员数据的值和会拷贝静态分配的成员对象

2020-06-12 16:05:01

【求最小公倍数】

题目描述:正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。示例1输入5 7输出35代码:#include<iostream>using namespace std;int gcd(int &a, int &b){ int c = 0; while (c=a%b) { a = b; b = c;

2020-06-12 15:20:19

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。