初学C/C++
文章平均质量分 94
初学时,遇到的一些关键点
ipanda_zll
这个作者很懒,什么都没留下…
展开
-
C/C++与逻辑__笔记
C/C++2.有虚函数的类有个virtual table(虚函数表),里面包含了类的所有虚函数,存放的是每个虚函数的函数入口地址,类中有个virtual table pointers,通常称为vptr,指向这个virtual table。虚函数表不占用类对象的存储空间,但是虚函数表指针占用类对象的存储空间。虚函数存放在代码段,虚函数表在Linux/Unix中存放在可执行文件的只读数据段中(rodata),微软的编译器将虚函数表存放在常量段。如果类的对象的内存是动态申请的,则该对象的所有成员均在堆区,相原创 2021-08-05 15:37:07 · 874 阅读 · 0 评论 -
C/C++
1.排序内排序:在排序过程中,整个数据处理过程都是在内存中,排序时不涉及数据的内、外存交换。堆排序:nlog(n), 第一个 n 是指数据的总量,第二个 n 是指堆的容量。归并排序:时间复杂度:从底到顶每层合并是 O(N) ,然后二分的层数是 log N ,因此总共是 O(N log N)。空间复杂度:对数组做归并排序的空间复杂度为 O(n),即新开辟数组为O(n),递归函数调用为O(logn)。快速排序:最优的情况下空间复杂度为:O(logn) ,即每一次都平分数组;最差的情况下空间复杂度原创 2021-12-10 11:21:03 · 1066 阅读 · 0 评论 -
STL笔记
1.仅当容器元素存储在连续内存空间里,迭代器才可以加上或减去一个整数,如vector.若容器元素不是存储在连续内存中,则不支持上述操作,如list. 但是迭代器支持自增、自减操作。2.队列、栈、堆不支持遍历,不提供迭代器。3.move_iterator 迭代器适配器,又可简称为移动迭代器,其可以实现以移动而非复制的方式,将某个区域空间中的元素移动至另一个指定的空间。class Solution {public: vector<vector<int>> reconst原创 2021-04-22 12:16:52 · 377 阅读 · 0 评论 -
计算机网络_笔记
Mac地址与IP地址L306ARP协议(1).2.从输入URL到显示网页,后台发生的事情CS集锦.原创 2021-03-04 20:15:45 · 463 阅读 · 0 评论 -
VS2019生成失败,但是未报告错误的一种不寻常的解决方案
笔者项目里包含一个主函数所在的.cpp文件,两个头文件,一个.cu文件。在对程序做了一些更改之后,便产生了如题目所述的问题。后来的解决方法是:把主函数所在的.cpp文件所包含的所有代码均注释掉,而后编译运行,弹出了一个控制台窗口,把窗口关闭,再取消对.cpp文件所包含代码的注释,问题便解决了。然而并不太清楚原理是什么,也不太清楚上述问题的产生原因。...原创 2020-10-08 19:22:55 · 6367 阅读 · 0 评论 -
KMP算法 以及对t[ j ]!=t[ k ]时令“k=next[ k ]“为何可行的证明
文章中的图片来源于 武汉大学 李春葆教授 “数据结构” 慕课。设t="abcabcd".上述算法运行过程为:1. j=1,k=0,next[1]=0;2. k=-1;3. j=2,k=0,next[2]=0;4. k=-1;5. j=3,k=0,next[3]=0;6. j=4,k=1,next[4]=1;7. j=5,k=2,next[5]=2;8. j=6,k=3,next[6]=3;从上述运行过程可以看出,k有两个作用,其一,用于对匹配成功的字符进行计数。其二,用于对匹配成功原创 2020-09-02 21:02:04 · 224 阅读 · 0 评论 -
Can not open “XXX.h”的一种较为奇怪的原因
这个问题或许很多人都遇到过,博客里的各种方法,几乎都试过了。最后,我把路径名复制到记事本里,打算重新建立一个新的属性文件。然后,保存记事本的时候,**提示编码需要更改**!!我突然想起来之前写程序的时候,也出现过类似的问题!!仿照之前处理问题的思路,发现原先路径名里竟然有“?”!! 把“?”删除之后,再把路径复制回去,原先的错误就消失了。...原创 2020-08-05 18:17:38 · 985 阅读 · 0 评论 -
C/C++ 笔记 (2)
下述第一条语句作用是防止vector的尺寸被修改。而第二条语句则无法通过编译。 const vector<Mat> Image; vector<const Mat> Image; //编译报错: C2338 The C++ Standard forbids containers of const elements because allocator<const T> is ill-formed. ...原创 2020-07-23 20:28:01 · 850 阅读 · 0 评论 -
使用cout进行格式化、lambda表达式
#include <iostream>#include <iomanip>using std::cin;using std::cout;using std::endl;int main(){ int a = 21; cout << std::hex << a << endl; cout.width(5); // 只作...翻译 2020-04-16 20:54:34 · 293 阅读 · 0 评论 -
模板类的友元函数、重载运算符、转换函数
#ifndef IPANDA_H#define IPANDA_H// 不能将模板成员函数放在单独的实现文件,// 因为模板不是函数,不能单独编译#include <string>#include <iostream>// 模板类的约束模板友元函数,因为友元函数是模板函数,// 所以此处是友元函数的模板函数的声明,并且要在模板类之前声明,// 所以是<t...原创 2020-04-16 10:22:24 · 541 阅读 · 1 评论 -
整型位数
#include <iostream>//#include <climits> //#include <limits.h>int main(){ using namespace std; int n_int = INT_MAX; short n_short = SHRT_MAX; long n_long = LONG_MAX; long lon...原创 2020-03-10 17:59:49 · 315 阅读 · 0 评论 -
char 与 int 以及一些其他的赋值方法
#include <iostream>int main(){ using namespace std; char ch = 'M'; int n_ch = ch; cout << "The ASCII code for "<< ch << " is" <<" "<< n_ch<< endl; cout...原创 2020-03-11 15:49:26 · 310 阅读 · 0 评论 -
C字符串和string对象输入
#include <iostream>int main(){ using namespace std; char name[20]; char food[20]; cout << "What is your name?" << endl; cin >> name; cout << "What is your favorit...原创 2020-03-12 18:07:41 · 194 阅读 · 0 评论 -
C/C++ 笔记 (1)
在C++中创建指针时,系统将分配用来存储地址的内存,但不会分配用来存储指针所指向的数据的内存。如下所示代码,*p没有明确的指向,因为系统会将1放在任何一个合适的内存块中。int *p;*P=1;...原创 2020-03-13 17:11:15 · 293 阅读 · 0 评论