C++
当如磐石
这个作者很懒,什么都没留下…
展开
-
将一个64位整数U64转变为4个16位整数U16(或U32转为4个U8)
今天需要将一个U64时间戳转化为4个U16,记录一下#include<stdio.h> #include<stdlib.h>#include<math.h>int main(){ unsigned long long int x = 978328074055923918; printf("before transform: %lld\n", x); unsigned long long int i, a[4]; printf("U16: \n"); f原创 2020-12-23 19:55:38 · 2024 阅读 · 0 评论 -
initializer element is not constant
转载为什么出现“initializer element is not constant”错误 看下面的代码: #include <stdio.h>int a = 1;int b = 2;int c = a+b; int main() { printf("c is %d\n", c); return 0;} gcc -o test test.c 编译时出现错误:initializer e转载 2020-12-20 22:04:52 · 605 阅读 · 0 评论 -
c++优先队列(priority_queue)用法详解
c++优先队列(priority_queue)用法详解转载 2020-08-13 22:29:51 · 103 阅读 · 0 评论 -
当遇到error: stray ‘\241‘ in program错误的解决方法
当遇到error: stray ‘\241’ in program错误的解决方法 报错的意思是c/c++中的产生了编译错误。 该错误是指源程序中有非法字符,需要将非法字符去掉。一般是由于coder使用中文输入法或者从别的地方直接复制粘贴代码造成的。代码中出现了中文空格,中文引号, 各种中文标点符号都会出现,简单修改一下就O转载 2020-07-19 16:12:01 · 2224 阅读 · 0 评论 -
C++ string获取字符串元素:[]和at()
在通常情况下,string 是 C++ 中的字符串。字符串是一种特殊类型的容器,专门用来操作字符序列。字符串中元素的访问是允许的,一般可使用两种方法访问字符串中的单一字符:下标操作符[] 和 成员函数at()。两者均返回指定的下标位置的字符。第 1 个字符索引(下标)为 0,最后的字符索引为 length()-1。需要注意的是,这两种访问方法是有区别的:下标操作符 [] 在使用时不检查索引的有效性,如果下标超出字符的长度范围,会示导致未定义行为。对于常量字符串,使用下标操作符时,字符串的最后字符(即原创 2020-07-13 00:29:46 · 1553 阅读 · 0 评论 -
《深入理解C++11》笔记–POD类型
转载《深入理解C++11》笔记–POD类型上一篇:《深入理解C++11》笔记–列表初始化 本编继续介绍第三章的内容:POD类型,plain old data。Plain代表数据是普通类型,old代表能与C兼容支持memcpy、memset等函数。POD分为两个部分,trivial(平凡的)和(s’tan’dard layout)标准布局的,必须同时满足才是POD类型。平凡的类或结构体必须满足以下的条件: - 平凡的默认构造函数和析构函数。只要是自己定义了函数,即使实现为空,也不再平凡。所以就是说不转载 2020-06-19 15:58:25 · 226 阅读 · 0 评论 -
C++中int与string的相互转换
转C++中int与string的相互转换 一、int转string1.c++11标准增加了全局函数std::to_string:string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string转载 2020-06-13 20:58:55 · 435 阅读 · 0 评论 -
C++11新特性
override关键字原创 2020-06-08 16:53:16 · 83 阅读 · 0 评论 -
虚析构函数的作用
虚析构函数的作用析构函数的作用类的析构函数是为了释放内存资源,析构函数不被调用的话就会造成内存泄漏。虚析构函数定义为虚析构函数是为了当用一个基类的指针删除一个派生类的对象时,派生类的析构函数会被调用。 但并不是要把所有类的析构函数都写成虚函数。只有当一个类被用来作为基类的时候,才把析构函数写成虚函数。示例代码:class Base{public: Base(string data) : m_data(data){ } ~Base(){ cout << "Base转载 2020-06-06 21:08:25 · 1718 阅读 · 0 评论 -
const
请找出下面程序中有哪些错误:int main(){ int i=10; int j=1; const int *p1;//(1) int const *p2=&i; //(2) p2=&j;//(3) int *const p3=&i;//(4) *p3=20;//(5) *p2=30;//(6) p3=&j;//(7)return 0;}const在前,内容不能变;const在后,指针不能变;const*原创 2020-06-05 12:00:07 · 152 阅读 · 0 评论 -
C++11 之 delete 和 default
例如幕后code子类构造函数要调用父类的构造函数转载C++11 之 delete 和 default 1 特殊成员函数 一个类,只有数据成员时class DataOnly {private: int data_;}; C++98 编译器会隐式的产生四个函数:缺省构造函数,析构函数,拷贝构造函数 和 拷贝赋值算子,它们称为特殊成员函数 (special member function) 在 C++11 中,除了上面四个外..转载 2020-05-27 00:59:28 · 264 阅读 · 0 评论 -
编译性语言和解释性语言对比
根本区别计算机不能直接的理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言的编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。解释性语言不用编译,在运行时翻译编译性语言是编译的时候直接编译成机器可以执行的语言,编译和运行是分开的,但是不能跨平台。比如exe文件,以后要运行的话就不用重新编译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行的时不要翻译,所以编译型语言的程序执行效率高编译性语言的优..原创 2020-05-23 13:24:44 · 663 阅读 · 0 评论 -
内存对齐
https://www.nowcoder.com/test/question/done?tid=33481878&qid=112463#summary32位系统下,对于下面的结构体A和B,sizeof(A),sizeof(B)的结果分别是()#include <stdio.h>#pragma pack(2)struct A{ int a; char b; short c;};#pragma pack() #pragma pack(4)struct B{ c原创 2020-05-18 23:43:28 · 74 阅读 · 0 评论 -
vector之resize,reserve
C++ vector中的resize,reserve,size和capacity函数讲解c++ vector resize & reserve原创 2020-05-18 00:55:31 · 75 阅读 · 0 评论 -
leetcode210. 课程表 II
https://leetcode-cn.com/problems/course-schedule-ii/class Solution {private: // 存储有向图 vector<vector<int>> edges; // 存储每个节点的入度 vector<int> indeg; // 存储答案 vector<int> result;public: vector<int> fi原创 2020-05-18 00:52:00 · 73 阅读 · 0 评论 -
虚指针vptr和和虚表vtbl以及upcast(向上造型)
upcast向上造型:父类引用指向子类对象。调用时子类override(重写)的方法将被调用,不能调用子类没有重写的方法。向下造型:子类引用指向父类对象。原创 2020-05-16 23:45:35 · 171 阅读 · 0 评论 -
explicit
one-argument指的是,可以有多个参数,但只有最左边的那个没有默认值。explicit告诉编译器禁止进行隐式类型转换。C++98和C++11对比C++98 C++11原创 2020-05-16 10:48:56 · 189 阅读 · 0 评论 -
深拷贝和浅拷贝
Class with pointer member(s)(具有指针成员的类)原创 2020-05-15 15:21:31 · 65 阅读 · 0 评论 -
c++在函数后加const的意义:
https://blog.csdn.net/qq_32739503/article/details/83341222我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。其实,它还能提高程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。 const成员函数和const对象 实际上,const成员函数还有另外转载 2020-05-15 15:08:06 · 2321 阅读 · 0 评论 -
[转]图说C++对象模型:对象内存布局详解
转自:http://mp.blog.csdn.net/postedit阅读目录0.前言 1.何为C++对象模型? 2.文章内容简介 3.理解虚函数表 3.1.多态与虚表 3.2.使用指针访问虚表 4.对象模型概述 4.1.简单对象模型 4.2.表格驱动模型 4.3.非继承下的C++对象模型 5.继承下的C++对象模型 5.1.单继承 5.2.多继承 6.虚继承 6.1.虚基类表解析 6.2.简单虚继承 6.3.虚拟菱形继承 7....转载 2020-05-13 09:01:51 · 138 阅读 · 0 评论 -
linux中对EINTR错误的处理
linux中对EINTR错误的处理 https://www.cnblogs.com/flyfish10000/articles/2576885.html EINTR错误的产生:当阻塞于某个慢系统调用的一个进程捕获某个信号且相应信号处理函数返回时,该系统调用可能返回一个EINTR错误。例如:在socket服务器端,设置了信号捕获机制,有子进程,当在父进程阻塞于慢系统调用时由父进程捕...转载 2020-05-04 22:28:25 · 479 阅读 · 0 评论 -
在while及if内部嵌套结构使用break的退出情况
#include <stdio.h>int main(){ int i = 0; int j = 1; while(i <= 2) { printf("i= %d\n",i); while(j <= 2) { if(j == 1) { if(i == 0) { ...原创 2020-05-01 12:04:53 · 9165 阅读 · 2 评论 -
C++之this指针
先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如果还有一个变量myclass mz,mz的this就是指向mz的指针。 这样就...转载 2020-04-30 09:10:06 · 346 阅读 · 0 评论 -
剑指offer---面试题56 - I. 数组中数字出现的次数OR数组中只出现一次的数字
https://www.nowcoder.com/practice/e02fdb54d7524710a7d664d082bb7811?tpId=13&tqId=11193&tPage=2&rp=3&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-rankinghtt...原创 2020-04-28 21:47:27 · 117 阅读 · 0 评论 -
LeetCode198二叉树的右视图(BFS层序遍历+DFS) C++
https://leetcode-cn.com/problems/binary-tree-right-side-view/BFS层序遍历:时间O(n),空间O(n)class Solution {public: //层序遍历bfs;时间O(n),空间O(n) vector<int> rightSideView(TreeNode* root) { ...原创 2020-04-22 23:28:31 · 130 阅读 · 0 评论 -
LeetCode200岛屿数量(DFS+BFS)C++实现
https://leetcode-cn.com/problems/number-of-islands/深度优先搜索(DFS)class Solution {public: //时间复杂度:O(MN), 其中M和N分别为行数和列数。 //空间复杂度:O(MN), 在最坏情况下,整个网格均为陆地,深度优先搜索的深度达到MN。 int numIslands(vector&l...原创 2020-04-20 23:58:27 · 305 阅读 · 0 评论 -
void类型及其类型指针
指针有两个属性:指向变量/对象的地址和长度 但是指针只存储地址,长度则取决于指针的类型 编译器根据指针的类型从指针指向的地址向后寻址 指针类型不同则寻址范围...转载 2020-04-19 21:00:04 · 802 阅读 · 0 评论 -
LeetCode11. 盛最多水的容器(双指针)
https://leetcode-cn.com/problems/container-with-most-water/class Solution {public: int maxArea(vector<int>& height) { int left = 0; int right = height.size() - 1; ...原创 2020-04-18 15:26:11 · 96 阅读 · 0 评论 -
#ifndef/#define/#endif使用详解
想必很多人都看过“头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,会产...转载 2020-04-17 19:47:51 · 111 阅读 · 0 评论