-
字符串类的深拷贝
class String
{
public:
String(char* str="")
:_str(new char[strlen(str)+1])
{
cout << "String()" << endl;
memcpy(_str, str, sizeof(char)
-
模版实现动态顺序表
#include<iostream>
using namespace std;
#include<assert.h>
#pragma warning(disable:4018)
template<typename T>
class SeqList
{
public:
SeqList();
~SeqList
-
字符串函数
1、memset函数原型:void *memset(void *s, int ch, size_t n);函数解释:将s中前n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s 。void* memset(void* s, int ch, size_t count)
{
as
-
调整数组使奇数全部都位于偶数前面。
题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。void RorderOddEven(int arr[], int length)
{
if (arr == NULL || length <= 1)
{
-
模拟实现printf,要求功能:print("ccc\ts!",'b','i','t',"welcome to you&q
void print(const char *format, ...)
{
va_list arg;//char *
va_start(arg, format);
while (*format)
{
switch (*format)
{
case 'c':
{
char
-
is_a原则和has_a原则
一、is-A继承关系:“表示类与类之间的继承关系、接口与接口之间的继承的关系以及类对接口实现的关系”。has-A合成关系:“是关联关系的一种,是整体和部分(通常为一个私有的变量)之间的关系,并且代表的整体对象负责构建和销毁代表部分对象,代表部分的对象不能共享”二、is_a是继承关系,has_a是组合关系(描述一个类中有另一个类型的实例)简单的理解就可以这样:has-a 就是这样:class&nbs
-
c++继承与组合
一、如果类A 和类B 毫不相关,不可以为了使B 的功能更多些而让B 继承A 的功能。 不要觉得“不吃白不吃”,让一个好端端的健壮青年无缘无故地吃人参补身体。二、如果类B 有必要使用A 的功能,则要分两种情况考虑:(1)若在逻辑上B 是A 的“一种”(a kind of ),则允许B 继承A 的功能。如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。那么类Man 可以从类Huma
-
请设置一种加密过程,完成对明文text的加密和解密过程
加密过程1、异或运算可完成简单的加密与解密过程明文text,用户给定的密码pw,假设密文为cipher.cipher=text^pwtext=cipher^pw=(text^pw)^pw =text^(pw^pw) =text解密过程:2,如果text长度大于pw,循环使用pw与text进行按位异或 明文中
-
c++中重载,重写,重定义的区别
1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关键字可有可无2 重写(覆盖)是指派生类函数覆盖基类函数,特征是: a 不同的范围,分别位于基类和派生类中 b 函数的名字相同  
-
.使用malloc开辟一个3*4的二维数组,并将内容初始化为0-11
方法一:#define ROW 3
#define COL 4
void Test()
{
int(*p)[ROW] = (int(*)[ROW])malloc(sizeof(int)*ROW*COL);
for (int i = 0; i <&n
-
‘之’字形打印矩阵
void PrintLevel(int** matrix,int tR,int tC,int dR,int dC,bool fromUp)
{
if (fromUp)
{
while (tR != dR + 1)
{
printf("%d", 
-
编写一个函数itob(int n,char s[], int b),将整数n转换为以b进制的数。保存到s中。
void Reverse(char *left, char* right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++
-
二进制中1的个数
1、将数右移int NumberOf1(int num)
{
int count = 0;
while (num)
{
if (num & 1 == 1)
++count;
num >>= 1;
}
return c
-
《将博客搬至CSDN》
将博客搬至CSDN
-
斐波那契数列
方法一:递归实现#include<stdio.h>
#include<stdlib.h>
long long Fibonacci(unsigned int n)
{
if (1 == n)
return 1;
if (0 == n)
return&nb
-
替换空格
代码如下:#include<stdio.h>
#include<stdlib.h>
void ReplaceBlank( char* str, int len)
{
if (str == NULL||len <= 0)
{
return;
}
i
-
二维数组中的查找
#include<stdio.h>
#include<cassert>
#include<stdlib.h>
#define COL 4
#define ROW 4
int Seek(const int *array, int key)
{
assert(array)
-
二进制数中1的个数
写一个函数返回参数二进制中 1 的个数比如: 15 0000 1111 4 个 1程序原型:int count_one_bits(unsigned int value){ // 返回 1的位数}方法一:(模除)缺点;未考虑十进制是负数的情况
-
不使用(a+b)/2的这种方式,求两个数的平均数
(a=b)/2这种方式求平均数时,假如两个数过大的话极易发生溢出现象,所以我们采用以下方法方法一:利用avg=num1-(num1-num2)/2的方式代码如下:#include<stdio.h>
#include<stdlib.h>
int main()
{
int num1 = 0;
int num2 =&
-
交换两个整型变量值的方法
方法一:创建临时变量#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 1, b = 2;
int temp = a;//创建临时变量temp
a = b;
b =