C++学习记录以及机器学习相关

C++学习记录

1.在VS Code里,让一个cpp文件调用另一个cpp文件:
在开头加入#include “******.cpp”
在VS Code里,让一个cpp文件调用自定义.h文件:
在开头加入#include “******.h”

2.关于调用strcpy()函数时总是报错问题:
每次调用strcpy函数时在文件开头 加上#pragma warning(disable:4996)。此方法比较直接有效。
链接: https://blog.youkuaiyun.com/me_daijun/article/details/50739143

VS2017出现的问题 const char * 不能再给char *进行初始化:
只能用字符数组
链接: https://blog.youkuaiyun.com/qq_36955347/article/details/83038607

3.全局数据区:存放全局变量,静态本地变量,静态成员变量;

堆栈:存放本地变量;

堆:存放new出来的东西。

4.const和static的区别:
https://blog.youkuaiyun.com/freedom62/article/details/72821452

5.strlen与sizeof的区别与使用:
https://blog.youkuaiyun.com/a904235765/article/details/47419699

6.Synchronized(对象锁)和Static Synchronized(类锁)的区别:
https://blog.youkuaiyun.com/cs408/article/details/48930803

7.哈希表hashTable:(与hashMap比较)
https://blog.youkuaiyun.com/iva_brother/article/details/82253989
https://blog.youkuaiyun.com/yu849893679/article/details/81530298

8.vector(不是特别必要):
https://blog.youkuaiyun.com/fanyun_01/article/details/56842637

9.c++常用头文件
iostream 是输入输出流头文件 cin cout等都要用
带c的都是和c语言相关的,例如,加cstdio可以进行scanf和printf的使用,比cin,cout快
algorithm是算法的头文件,有一些算法相关的函数,max等
https://blog.youkuaiyun.com/THISISPAN/article/details/7470335

10.return; return 0; return -1; return 1;的区别:
1 return, 如果什么都不接的话,其实就是void类型函数的返回,返回后不再执行return后面的语句,如果函数执行成功返回0,不成功返回非0,一般情况下非0值常用-1来表示。
2 return 0:一般用在主函数结束时,表示程序正常终止,即告诉系统程序正常。
3 return -1::表示返回一个代数值,一般用在子函数结尾。表示程序异常终止,即告诉系统程序异常
4 return 1:与return -1相同。

11.C++中->的意思:(动态指针)
指向结构变量的指针
一个指针变量当用来指向一个结构变量时,称之为结构指针变量。结构指针变量中的值是所指向的结构变量的首地址。通过结构指针即可访问该结构变量,这与数组指针和函数指针的情况是相同的。
结构指针变量说明的一般形式为:
struct 结构名 *结构指针变量名

#include<stdio.h>
struct stu   // 定义一个结构体
{
    char name[10];  // 姓名
    int num;  // 学号
    int age;  // 年龄
};
void main()
{
    struct stu *s;   // 定义一个结构体指针
    char str[]="ZhangLi";
    s->name = str;     // 对结构体中的成员变量name进行赋值
    s->num = 2015120;  // 对结构体中的成员变量num进行赋值
    s->age = 18;       // 对结构体中的成员变量age进行赋值
}

12.nullptr与NULL区别:
https://blog.youkuaiyun.com/wmaoshu/article/details/50662332

13.指针和应用作为函数参数的区别
https://blog.youkuaiyun.com/wangdongwei0/article/details/85227864
下面的程序是可通过的(剑指offer)

class Solution {
public:
	TreeNode* Convert(TreeNode* pRootOfTree)
	{
		if (pRootOfTree == nullptr) return nullptr;
		TreeNode* res = pRootOfTree;//定义
		TreeNode* pre = nullptr;//定义
		change(res, pre);//调用函数
		while (res->left)
			res = res->left;
		return res;
	}
private:
	void change(TreeNode* res, TreeNode*& pre)//此处函数的引入参数的格式,如果去掉&程序会报错
	{
		if (res == nullptr) return;
		change(res->left, pre);
		res->left = pre;
		if (pre) pre->right = res;
		pre = res;
		change(res->right, pre);

	}
};

一言以蔽之:如果想改变一般类型的参数的值,可以使用变量的指针做参数;如果想改变指针变量指向的地址就要用引用参数。

如果在子函数中我们改变指针p指向对象的值时,第一种和第二种都可以。但是如果我们要改变指针p指向对象的话,只有第二种可以实现。

因为如果不使用&,那么在函数中会自动调用指针的构造函数,构造一个临时指针,这个指针和传进来的指针指向同一个位置。我们可以通过这个临时指针改变该位置的数值,但是如果把临时指针指向另一个位置时,并不会改变传进来的指针指向的位置。

14、判断一棵二叉树是不是全二叉树:
https://blog.youkuaiyun.com/qq_40938077/article/details/80471997
创建队列在,暂存节点,依次判断。

15.STL中map的使用
https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html

    map的基本操作函数:

     C++ maps是一种关联式容器,包含“关键字/值”对

     begin()         返回指向map头部的迭代器

     clear()        删除所有元素

     count()         返回指定元素出现的次数

     empty()         如果map为空则返回true

     end()           返回指向map末尾的迭代器

     equal_range()   返回特殊条目的迭代器对

     erase()         删除一个元素

     find()          查找一个元素

     get_allocator() 返回map的配置器

     insert()        插入元素

     key_comp()      返回比较元素key的函数

     lower_bound()   返回键值>=给定元素的第一个位置

     max_size()      返回可以容纳的最大元素个数

     rbegin()        返回一个指向map尾部的逆向迭代器

     rend()          返回一个指向map头部的逆向迭代器

     size()          返回map中元素的个数

     swap()           交换两个map

     upper_bound()    返回键值>给定元素的第一个位置

     value_comp()     返回比较元素value的函数

16、C++中的迭代器iterator:
如vector::iterator ot;
string::iterator it;
https://blog.youkuaiyun.com/qq_35644234/article/details/52331948

17、sort函数的使用
#include
sort(numbers.begin(), numbers.end())
https://blog.youkuaiyun.com/yinjianxiang/article/details/73252176

18、字符串相关
https://blog.youkuaiyun.com/malele4th/article/details/79337968

19、c++的多态性
https://catonmat.net/cpp-polymorphism

20、条件编译(#ifdef)
https://blog.youkuaiyun.com/qq_33658067/article/details/79443014

21、L1正则化和L2正则化
https://blog.youkuaiyun.com/red_stone1/article/details/80755144
L1正则化:
在这里插入图片描述
因此更容易产生权重W为0的情况,为稀疏化的权重矩阵

L2正则化
在这里插入图片描述
更容易产生较小的权重,也就是 权重上限收到限制,权重一般都较小

在这里插入图片描述

22、五大常用算法
https://blog.youkuaiyun.com/qq_20309055/article/details/78877909

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值