
C++
文章平均质量分 68
duangyhn
这个作者很懒,什么都没留下…
展开
-
c++ 关于decltype和auto的一点小总结
最近再看C++primer 5th,正好总结一下decltype和auto的用法,方便复习auto定义的变量必须有初始值使用auto可以在一条语句声明多个变量,但一条声明语句只能有一个基本数据类型auto i=0,*p=&i;auto sz=0,pi=3.2; //错误 sz和pi类型不一致真正参与初始化的其实是引用对象的值,编译器以引用对象的类型作为auto的类型int原创 2017-05-11 19:07:12 · 344 阅读 · 0 评论 -
c++语言基础总结
1.strlen和sizeof区别?sizeof是运算符,并不是函数,结果在编译时得到而非运行中获得;strlen是字符处理的库函数。 sizeof参数可以是任何数据的类型或者数据(sizeof参数不退化);strlen的参数只能是字符指针且结尾是'\0'的字符串。因为sizeof值在编译时确定,所以不能用来得到动态分配(运行时分配)存储空间的大小。sizeof (type)si...原创 2018-08-30 15:43:36 · 263 阅读 · 0 评论 -
c++中的static和extern
看到一个大神写的非常简单明了的回答,特地转载过来链接:https://www.zhihu.com/question/265415085/answer/293495989//是说这个变量是存在,但是不在(可能)当前的编译单元,后续链接时会在哪里发现//大家共用这个全局变量//如果在链接的时候,没有在任何地方发现这个变量的定义//即没有不带 extern 的 int x,报链接错误ex...转载 2018-08-03 21:46:31 · 603 阅读 · 0 评论 -
c++中extern关键字
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块或者其他模块中使用,记住它是一个声明不是定义! 链接指定。当它与"C"一起连用时,如: extern "C" void fun(int a, int ...原创 2018-08-03 21:05:09 · 7418 阅读 · 5 评论 -
关于二分查找的相关问题
查到目标点所在区间 in soreted arrayclass Solution {public: vector searchRange(vector& nums, int target) { vectorret(2,-1); if(nums.empty())return ret; int beg=-1,end=nums.size();原创 2017-10-14 15:36:55 · 270 阅读 · 0 评论 -
leetcode 5. Longest Palindromic Substring(回文和Manacher算法)
#include#include#include#includeusing namespace std;class Solution {public: string longestPalindrome(string s) { if(s.empty())return s; string temp; for(int i=0;i<s.s原创 2017-08-25 15:22:53 · 300 阅读 · 0 评论 -
effective c++:写出一个不抛出异常的swap函数
考虑写出一个不抛出异常的swap函数假设Widget和WidgetImpl都是class:class WidgetImpl{ //针对Widget数据而设计的classpublic: ...private: int a,b,c; //可能很多数据 std::vectorv; //意味复制时间很长};当Widget被置换时真正该做的是置换内部指针原创 2017-08-06 12:51:26 · 236 阅读 · 0 评论 -
effective c++:让接口容易被正确使用,不易被误用
让接口容易被正确使用,不易被误用1)许多客户端错误可以因为导入新类型而获得预防。一旦正确的类型定位,限制其值有时候是通情达理的。考虑下面的例子表现日期:class Date{public: Date(int month,int day,int year); ...};Date d(20,30,1997); //20月不存在的改进:stru原创 2017-08-06 10:50:17 · 250 阅读 · 0 评论 -
effective c++:资源管理相关
以对象管理资源许多资源被动态分配与heap内而后被用于单一区块或函数内。他们应该在控制流离开那个区开或函数时被释class Investment{...};//投资类型继承体系中的root classInvestment* createInvestment(); //返回指针,指向Investment继承 //体系内的动态分配对象,调用者有责任删除它void原创 2017-08-05 11:45:20 · 228 阅读 · 0 评论 -
effective c++ item2总结:以编译器替换预处理器
Item 2:以编译器替换预处理器(以const,enum,inline替换#define):#define不被视为语言的一部分,那正是他的问题所在。sam1:#define ASPECT_RATIO 1.534替换为:Const double AspectRatio=1.534;名称记号ASPECT_RATIO也许从未被编译器看见:可能在编译器开始处理源码之前就被原创 2017-08-04 09:28:13 · 279 阅读 · 0 评论 -
effective c++ item04:确定对象被使用之前以先被初始化
Item04 确定对象被使用之前已被初始化Class PhoneNumber{...};Class ABEntry{Public: ABEntry(const std::string& name,const std::string& address, const std::list& phones);Private: Std::string theName; Std::s原创 2017-08-04 12:01:04 · 236 阅读 · 0 评论 -
stack in c++
stack在c++stl中作为特殊容器存在,其实现多为单纯地把各项操作转化为内部容器的对应调用下面是其简单实现头文件#ifndef _STACK_H#define _STACK_H#include#includetemplate class Stack{ protected: std::deque c; public: class ReadEmptySta原创 2017-07-22 09:41:24 · 431 阅读 · 0 评论 -
c++ stl容器相关操作
#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;templatevoid PRINT_ELE(const Container& t){ for(au原创 2017-07-21 21:49:33 · 240 阅读 · 0 评论 -
c++ stl算法
这里是一些stl常用算法,搭配迭代器、function object、lambda有强大的功能#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing n原创 2017-07-21 21:53:46 · 221 阅读 · 0 评论 -
典型的C++程序员成长经历
1. 完整的学一遍 C++ 所有语言特性,典型书籍 "The C++ Programming Language" Part1, Part2, "C++ Primer" 感觉 C++ 像大杂烩(多编程范型),各种精妙的语法特性 (friend, virtual/RTTI, const/mutable, exception, template),太多精妙的东西容易导致记忆琐碎化,学转载 2017-06-25 14:22:51 · 1024 阅读 · 0 评论 -
c++ 一个元素是string的vector容器
写了一个元素是string的vector容器,用到了不少知识点头文件#ifndef _StrVec_H#define _StrVec_H#include#include#include#include#includeclass StrVec{public: StrVec():element(nullptr),first_free(nullptr),cap(nullptr原创 2017-05-29 15:58:05 · 712 阅读 · 0 评论 -
关于const的一点个人总结 C++
我想简单总结一个const 的用法,方便我自己复习只能在const类型的对象上执行不改变其内容的操作,const int和普通int一样都能参与算术运算,也能转化为一个布尔值。int i=42;const int ci=i;int j=ci;在拷贝一个对象的值时并不会改变他。const的引用const int ci=9;const int &r1=ci;原创 2017-05-11 15:05:49 · 236 阅读 · 0 评论