C++
RGBMarco
时间能证明一切,如果不能帮助到别人,那就记录自己!
展开
-
c++ shared_ptr的错误用法之cycle引用
#include <iostream>#include <memory>#include <string>#include <vector>using namespace std;class Person{public: string name; shared_ptr<Person> monther; shared_ptr<Person> father; v原创 2017-05-13 12:16:38 · 533 阅读 · 0 评论 -
C++ 自定义迭代器(实现++递增两格)
//效果每次迭代器加移动两格#pragma once//MyIterator.h#include <iterator>#include <exception>template<typename Container>class MyIterator :public std::iterator<std::random_access_iterator_tag, typename Containe原创 2017-06-26 21:46:14 · 1972 阅读 · 0 评论 -
chrono库及C和POSIX提供的Date/Time函数灵活运用
#include <iostream>#include <chrono>#include <string>#include <exception>using namespace std;//将time_point转换为stringstring asString(const chrono::system_clock::time_point& tp){ time_t t = chr原创 2017-06-03 11:26:25 · 528 阅读 · 0 评论 -
chrono库碰到的那些坑
看过c++标准程序库的同学都知道在介绍chrono库时有这段代码:#include <iostream>#include <chrono>#include <string>using namespace std;string asString(const chrono::system_clock::time_point& tp){ time_t t = chrono::system原创 2017-06-02 22:55:25 · 2602 阅读 · 0 评论 -
c++ 比较操作符利用rel_ops生成引用
自定义 < 和 != 就可利用命名空间引用rel_ops#include <iostream>using namespace std;class Integral{public: Integral(int i):ig(i){} bool operator ==(const Integral& rhs)const { return ig == rhs.ig原创 2017-05-18 21:18:51 · 735 阅读 · 0 评论 -
c++ type trait 之 useful trait
#include <iostream>#include <array>using namespace std;enum class color : char{ yellow, red, bule};int main(){ //row Array的维度 cout << rank<int []>::value << endl; //extent原创 2017-05-18 17:34:27 · 377 阅读 · 0 评论 -
c++ type trait 之 类型修饰符(Type Modifier)改动类型
#include <iostream>using namespace std;int main(){ int a = 5; add_const<int *>::type b = &a;//int * const //关于引用遵守引用折叠规则 add_lvalue_reference<int&&>::type c = a;// int & add_rvalue原创 2017-05-18 08:20:02 · 714 阅读 · 0 评论 -
c++ type trait 之 检验类型关系(Type Relation)
#include <iostream>using namespace std;int main(){ cout << boolalpha; // is_same<T1,T2> T1和T2类型是否相同(包括const volatile修饰符) cout << is_same<const int&, int>::value << endl; // is_base_of<原创 2017-05-17 22:29:08 · 551 阅读 · 0 评论 -
c++ type trait 之 class trait
#include <iostream>using namespace std;class A{public: A() { } //virtual ~A() = 0;private: int a;};int main(){ cout << boolalpha; //Class 不带任何成员 virtual成员函数或virtual base clas原创 2017-05-17 17:40:25 · 534 阅读 · 0 评论 -
c++ type trait 之 类型判断工具
//type trait 之类型判断工具#include <iostream>#include <array>using namespace std;enum class color{ red,green,blue};auto f = [](){ cout << "I'm lambda" << endl;};union A{ int a; float原创 2017-05-17 12:41:55 · 781 阅读 · 0 评论 -
c++ tuple的操作
tuple(不定数值组)的操作 1.初始化 见Init()//class tuple<>构造函数是 explicit的,因此不支持隐式转换 2.其他tuple的特性 见special 3.tuple的输出 见output()等#include<iostream>#include<tuple>using namespace std;void Init(){ //常规初始化原创 2017-05-07 10:11:39 · 630 阅读 · 0 评论 -
c++ pair和tuple的操作
//c++ pair和tuple的操作 //1.初始化见函数Init() tupleTopair() class Foo; //2.pair的输出 见print() ostream& operator<<(ostream& os,const pair#include<iostream>#include<tuple>using namespace std;void Init(){原创 2017-05-06 22:24:02 · 761 阅读 · 0 评论 -
c++ 差错和异常的处理(一)
//通过差错码可以对异常很好的处理#include<iostream>#include<system_error>#include<future>#include<exception>#include<string>template<typename T>void processCodeException(const T& e){ using namespace std;原创 2017-05-06 17:10:09 · 845 阅读 · 0 评论 -
c++ shared_ptr误区之row pointer被多组shared_ptr拥有
//确保对象直接被一组shared_ptr拥有//而不是多组直接拥有#include <iostream>#include <memory>using namespace std;int main(){ int *p = new int(5); shared_ptr<int> sp(p);//第一组 shared_ptr<int> sp2(p);//第二组 c原创 2017-05-13 21:39:24 · 332 阅读 · 0 评论 -
c/c++实现 多种排序
1.直接插入排序void InsertSort(int a[],int n){ int temp; int j; for (int i = 1; i < n; ++i) { temp = a[i]; for (j = i - 1; j >= 0; --j) { if (a[j] <= temp)原创 2017-06-11 14:59:21 · 495 阅读 · 0 评论