- 博客(111)
- 资源 (2)
- 收藏
- 关注
原创 Git入门(二)
set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。如果远程分支名和本地分支名称相同,则可以只写本地分支。-f 表示强制覆盖。
2025-01-05 22:20:02
417
原创 Git 入门(一)
下载地址: https://git-scm.com/download。commitID 可以使用git-log 或 git log指令查看。–abbrev-commit 使得输出的commitId更简短。–pretty=oneline 将提交信息显示为一行。–graph 以图的形式显示。打开GitBash执行命令。all 显示所有分支。
2025-01-01 21:46:12
567
2
原创 C++ 实现生产者和消费者问题
假设缓冲区大小为10,生产者、消费者若干。只要缓冲区池未满,生产者便可以将消息送入缓冲区池,只要缓冲区池未空,消费者便可以从缓冲区中取走一个消息。
2025-01-01 21:18:02
226
原创 模板类内部能否含有虚函数?
C++的多态是通过虚表实现的,对于含有虚函数的类,会为其定义一个虚表,每个实例化的对象都有一个指向该虚表的指针,所以同样的类,含有虚函数的类的实例大小比不含虚函数的多上一个指针的大小,虚表里为每个虚函数维护着一条跳转记录,这些跳转地址在编译期就被确定了,存放在类定义模块的数据段中,在程序运行期是不可修改的。C++对于模版的处理,在编译时,编译器只对已经实例化的模板类生成对应的模板类代码,假如这些类中定义的有模板类虚函数,则对每个实例化的模板类型创建一个虚表,即第一种情况 ——无法通过编译,至于为什么?
2024-07-03 22:40:25
406
1
原创 Linux下获取文件夹下普通文本文件和子文件夹中的文件的路径和所有文件的字节数之和
Linux下获取文件夹下普通文本文件和子文件夹中的文件的路径和所有文件的字节数之和。
2023-08-30 21:45:40
261
转载 C++ 从子类访问父类的私有函数(看的我发愣)
尽管从各种c++书籍中我们得到的信息是子类从父类继承的仅有protected成员和public成员,而父类的private成员无法被子类继承,也无法被子类访问,但是当父类的private函数是一个虚函数时,我们却可以通过读取VTABLE表中信息,从而找到父类虚函数的地址,进而调用它。注意了,关键就在这里:A的虚函数都是私有的,不是么?规律二:当子类和父类同时拥有虚函数时,子类的VTABLE中也同时会拥有父类和子类的虚函数偏移地址,而且子类的虚函数偏移地址一定是追加在父类虚函数偏移地址之后的。
2022-09-20 10:30:31
3284
1
转载 在文件中定义了一个全局变量,在本文件和其他文件中如何使用它。—— 匿名命名空间
在匿名命名空间中声明的名称也将被编译器转换,与编译器为这个匿名命名空间生成的唯一内部名称(即这里的__UNIQUE_NAME_)绑定在一起。还有一点很重要,就是这些名称具有internal链接属性,这和声明为static的全局名称的链接属性是相同的,即名称的作用域被限制在当前文件中,无法通过在另外的文件中使用extern声明来进行链接。注意:命名空间都是具有external 连接属性的,只是匿名的命名空间产生的__UNIQUE_NAME__在别的文件中无法得到,这个唯一的名字是不可见的....
2022-08-30 10:56:17
350
原创 C++把引用作为返回值
当返回一个引用时,要注意被引用的对象不能超出作用域。所以返回一个对局部变量的引用是不合法的,但是,可以返回一个对静态变量的引用。当函数返回一个引用时,则返回一个指向返回值的隐式指针。这样,函数就可以放在赋值语句的左边。通过使用引用来替代指针,会使 C++ 程序更容易阅读和维护。C++ 函数可以返回一个引用,方式与返回一个指针类似。
2022-08-24 15:08:13
327
原创 在Ubuntu中安装软件遇到”无法修正错误,因为您要求某些软件包保持现状,就是他们破坏了软件包见的依赖关系“的问题的解决办法之一
软件安装问题解决办法
2022-06-03 21:11:27
3198
原创 设计模式 —— 单例模式
//******************************* 懒汉式1 *******************************#include <iostream>#include <memory> // shared_ptr#include <mutex> // mutex// version 2: thread is safe now and memory doesn't leakclass Singleton {public: t
2022-05-03 15:27:20
232
原创 运算符 ‘取非‘ 与 ‘取反‘ 的异同
一、运算顺序不同① ~:位运算符,是对x,y进行位运算;② !:是逻辑运算符,用于从左到右求表达式的真值。二、运算过程不同① ~: 位运算的运算速度通常与加法运算相同。② !:逻辑运算符用于对包含关系运算符的表达式进行合并或取非。三、运算过程不同① ~:位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。② !:使用逻辑运算符的表达式,返回0表示”假”,返回1表示 ”“真” 。...
2022-04-24 15:57:36
6430
转载 Windows开发平台下 —— pthreads.h头文件的配置
下载所需的相关文件(免费哦)pthreads文件分三部分这三个文件内容按照表里的对应关系添加到相应目录(注:对应位置表示你安装的VS里的文件)。注:由于pthread.h头文件里和time.h中(time.h中通常也被其他的库/头文件包含)已经声明了的timespec,会出现“timespec”:“struct”类型重定义的问题,所以我对pthread.h头文件里的timespec做了注释,这点需要说明。最后,在程序代码中加入静态链接的添加命令即可。#pragma ..
2022-04-21 10:27:42
759
原创 C++ 常量成员函数的碎碎知识点
#include<iostream>using namespace std;//常量指针:指向常量的指针 const int* p = &a; 更加关注 不可以通过指针 改变 指针所指向的变量或对象的值;//指针常量:指针是一个常量 int* const p = &a; 更加关注 指针指向唯一性class A {public: //记得加上作用域,不然默认为私有 A() {} ~A() {} void A() { a = 5;
2022-04-20 15:03:03
893
原创 C++深拷贝 浅拷贝
#include<iostream>using namespace std;//深拷贝与浅拷贝class Person{public: Person() { cout << "Person的默认构造函数调用" << endl; } Person(int age, int height) { m_Age = age; m_Height = new int(height); cout << "Person的有参构造函数调用
2022-04-17 20:08:19
118
原创 memset函数
int main(){ int test[100]; fill(test, test + 100, 1); cout << "case 1:" << endl; for (int i = 0; i < 100; i++) { cout << test[i] << " "; } cout << endl << endl; //void* menset(void* str, int c, size_t n)
2022-03-29 09:01:54
194
原创 “子序列”与“子串”详解
子序列与子串的区别子序列:从从字符串中删除一些字符后不更改剩余字符串字符顺序而生成的序列!子 串:原序列中必须连续的一段!code:#include <vector>#include <string>#include <iostream>using namespace std;void print_vec(const vector<string>& str);//------------------------------
2022-03-16 19:07:37
5388
原创 输出数组的全部子集
输出整数数组的全部子集(子集个数计算公式:子集个数 = 2^n,n表示数组的元素的个数)//问题:生成数组的所有空子集!//数组的子集个数 = 2^n - 1#include <vector>#include <iostream>using namespace std;vector<vector<int>> subsets(vector<int>& vec){ vector<vector<int>&g.
2022-03-16 10:50:44
1512
原创 C++中的map于unordered_map的区别
前言C++的STL库实现有两种字典结构,即map和unordered_map(也就是通俗意义上的hash map)。这两者虽然都称为Map,但其实它们的底层实现原理具有很大差距,因此它们的使用场景也不尽相同。今天特意研究了一下,下面从几个方面具体谈谈它们的差别及其具体的使用场景。介绍字典类型又被称为关联数组(associative array),关联数组和正常数组的使用方法是相似的,但其不同之处在于字典结构的下标不必是整数,而可以是任意类型。map和unordered_map这两种字典结构都是通过
2022-03-15 08:56:57
1613
1
原创 “冒泡排序”你会嘛?
#include <vector>#include <iostream>#include <algorithm>using namespace std; //冒泡排序1/** 排序思想:* 从第一个数开始,一次往后进行比较,若第一个数大于第二个数(第二个数大于第三个数...),则交换。* 从而每一轮循环都能比较出最大数或最小数,放在最后确定的位置。*/void bubbleSort_1(vector<int>& vec){
2022-03-10 14:51:49
122
原创 C++ 实现自己的字符串分割(split())函数
//string and c-string#define _CRT_SECURE_NO_WARNINGS //用来关闭warning功能#include <iostream>#include <cstring>#include <string>#include <cstring>using namespace std;//未使用strcpy、strtok等函数的安全版本(strcpy_s、strtok_s)时,若未加上关闭warni
2022-03-01 14:14:26
755
2
原创 C++中pair的使用
详细使用见下面的代码: //向map中的vector中添加pair数对 map<int, vector<pair<int, int>>> m_pair; for (int i = 0; i < 10; ++i) { m_pair[i].push_back(make_pair<int, int>(i+1000, i + 100)); } for (auto ite = m_pair.begin(); ite != m_pair.end()
2022-02-21 16:29:16
622
原创 2022/01/01
新的一年,有美好的期待。愿望不多,有三。一是期待身边的人身体健康(快乐太难了);二是希望自己能顺顺利利的完成毕设所涉及的相关实验;三是希望自己能在秋招的时候成为offer收割机,能拿到满意的offer(这是最最最主要的啦!);{ string str = "Talk is cheap show me the code"; //将字符串分成单个单词字符串 vector<string> res; string word_str = ""; int i = 0; char ch = str[i];
2021-12-29 10:08:11
1378
原创 写一段代码,可以输出这段代码本身
//问题:写一段代码,可以输出这段代码本身#include <iostream> #include <fstream> using namespace std;int main(){ ifstream ifs(__FILE__); cout << ifs.rdbuf(); ifs.close(); return 0;}
2021-12-27 21:12:35
651
Windows开发平台下 —— pthreads.h头文件的配置
2022-04-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人