C++
xiaobinfeng_
这个作者很懒,什么都没留下…
展开
-
指针的艺术——指针学习从零开始
感觉指针不得不认真学啊,躲不过去。原创 2014-11-02 14:21:39 · 842 阅读 · 0 评论 -
C++ 虚函数 虚内存的内存模型
1 多态类型 在C++中,多态类型是指声明或者继承了至少一个虚函数的类型,反之则为非多态类型。 对于非多态类型的变量,其类型信息都可以在编译时确定。例如:struct C{ /* data */ void foo() {}};C c; std::cout << typeid(c).name(); // 可以在编译时确定a的类型为A c.foo(); ...原创 2018-08-20 20:20:10 · 1405 阅读 · 0 评论 -
c++ struct 内存对齐
结构体的内存布局依赖于cpu,操作系统,编译器以及编译时的选项。 考虑三点: 1.成员对齐 每个成员变量存放的位置相对于结构体起始位置的偏移量必须为该变量类型所占用字节数的倍数。 空缺的字节由编译器自动padding,padding的值根据内存分配的不同,也会有所不同,这需要接下来的测试。 2.结构体对齐 结构体类型的对齐要求不能比它内部类型中要求最严格的那个宽松,也就是要是最大类型的...原创 2018-08-12 17:30:39 · 1395 阅读 · 0 评论 -
C++单例模式
//// Created by fengxb on 18-7-28.//#ifndef SINGLETON_SINGLETON_H#define SINGLETON_SINGLETON_H#include <pthread.h>class Singleton{public: static Singleton* getInstance(); stati...原创 2018-07-28 12:19:18 · 170 阅读 · 0 评论 -
strcpy函数
char* my_strcpy(char* dest_str, const char* src_str){ if(dest_str== nullptr||src_str== nullptr){ throw “invalid arguments”; } //c语言字符数组以\0结尾 char* dest_cpy_str=dest_str; ...原创 2018-07-28 10:59:22 · 169 阅读 · 0 评论 -
求链表导数第k个节点
typedef struct ListNode{ int data; struct ListNode* next;}ListNode;ListNode* FindKthToTail(ListNode* pListHead, uint32 k){ if(pListHead== nullptr){ return nullptr; } Li...原创 2018-07-27 23:48:19 · 235 阅读 · 0 评论 -
找出数组中第一个重复的元素
长度为n的数组,存放0-n-1的int数,找出数组中第一个重复的元素。bool duplicate(int numbers[], int length, int* duplication) { if (length <= 0 || numbers == nullptr) { return false; } for (int i = 0; i &...原创 2018-07-30 22:05:39 · 1179 阅读 · 0 评论 -
c++ 实现atoi函数
atoi函数就是由string转为int,在这个过程中需要做一些判断。 1. 判断string长度>0 2. 判断首位字符的符号 3. 正负数对应的溢出条件 4. 判断每一位的字符 参考了JDK1.8的实现。int my_strlen(const char*s){ if(s== nullptr){ cout<<"error"<<e...原创 2018-07-27 00:27:01 · 4075 阅读 · 0 评论 -
函数参数问题
引用是一个变量的别名,除用&取代*外,定义引用的方法与定义指针类似。例如: double num1 = 3.14; double &num2 = num1; // num是num2的引用 定义num2为num1的引用,它并没有复制num1,而只是num1的别名。也就是说,它们是相同的变量。例如,如果执行下面的语句: num1 = 0.16;转载 2014-11-04 09:04:05 · 321 阅读 · 0 评论 -
查看C++程序的运行时间
#include <iostream>#include <time.h>int main(){ clock_t start,finish; start = clock(); for(int i = 1;i<1000; i*=5) { std::cout<<i<<std::endl; } finish = clock(); ...原创 2018-12-04 11:10:43 · 4450 阅读 · 2 评论