随笔分类 - C/C++
摘要:今天没事用C写了下快排。C++泛型算法库里有sort(),因此已经很少自己写了。 1 #include <stdbool.h> 2 3 /* QuickSort Algorithim */ 4 void QuickSort(int *begin, int *end) 5 { 6 if(begin == end)return; 7 int *left = begin, *right = end-1; 8 int tmp; //for swap; 9 10 bool L2R = false; //search direction11 12 ...
阅读全文
摘要:写了一个类,主要目的是实现csv文件的读取和处理以及操作。包括计算收益率,按月合并,等等。csv文件需满足:第一列为日期,且格式为yyyy-mm-dd。 1 //FileReader.h 2 3 #ifndef FILEREADER_H 4 #define FiLEREADER_H 5 #include<string> 6 #include<vector> 7 8 9 10 class FileReader11 {12 public:13 14 enum Term { day, month };15 16 FileReader(const std::str...
阅读全文
摘要:杂记一下因为帮某妹子调C程序菜发现两件事一、标准C不支持引用传递二、标准C不支持默认实参妹子的C语言老师似乎搞不清楚这两件事。甚至不知道gcc是啥。只是不停的说vc6里面可以的啊blabla......用泥煤啊.......另外补充一个,就是C中的struct和C++中的struct不是一个东西。C++中的struct是默认标号和默认继承方式都为public的class。而C中的struct仅仅就是一堆数据放在一块。此外日常开发中C++已经极少用到union。
阅读全文
摘要:这篇晚上回来重写,先吐个槽.今年上半年的时候面quant问我讲virtual constructor...印象里标准C++里根本没这东西,完全不知所以然,如今看了C++ Design Patterns这书才知道都是被这书惹的祸,标题叫virtual constructor其实讲的都是virtual copy constructor,而且严格说来只能叫做用virtual机制实现的clone()函数......能不能不要这么坑爹。--------------------------------分割线------------------------------------下面谈一下随机数的种子的问题
阅读全文
摘要:这里谈一下后自增操作符++其实现在任何一个见过++i;和i++;的人都明白它的初步原理是啥。很多程序员都会说出下面这段话:前自增代表先自增再操作,后自增代表先操作后自增。这个先和后的说法实际上并不准确,例如下面这个程序: 1 #include<list> 2 3 int main() 4 { 5 list<int> testlist; 6 for(int ix=0;ix<10;++ix)testlist.push_back(ix); 7 8 list<int>::iter = testlist.begin(); 9 while(!testlist.em
阅读全文
摘要:继承和派生这里主要总结一下访问控制的问题。如果class A{};class B:A public/private/protect{};则B是A的子类,于是对于A中的成员按照标号,B中的访问规则是如果在A中是private,则类B中不能访问(初始化时要在初始化列表中调用A的构造函数)如果在A中是protected或者public,则类B中可以访问以上两点是针对在类的内部说的,与继承方式无关。继承方式只影响派生类对象对基类成员的访问:对于private继承,则派生类对象不能访问一切基类成员对于protected继承,则派生类对象不能访问一切基类成员对于public继承,派生类对象不能访问基类的p
阅读全文
摘要:这一篇不是笔记。是日记。花了一周读完了STL容器,Generic Algorithm以及几种常见的OO方法。彻底刷一遍C++还是很有好处的。知道了很多新的东西。话说C++果然是个无比庞杂的语言。东西太多了。哪怕你只弄懂其中简单的一部分也能做很多很多事。C++ 11出来了。不过似乎还没有特别多的人在玩。把Primer刷完有空学学Java。心里最大的愿望还是能随心所欲的使用计算机来做Creative的工作。哪怕用它帮我做Analysis.虽然不需要造轮子,但是今后一些API的接口开发要会。最后依然要说的是,C++是一门很优美的语言。
阅读全文
摘要:数组名和指针数组名不是指针,虽然它们太像了。比如#include <iostream>using namespace std;int main(){ int arr[bufSize]={0, 1, 2, 3, 4}; int *p=arr; cout<<p[0]<<'\t'<<p[1]<<endl;for(size_t idx = 0; idx != bufSize; ++idx)cout<<*(arr+idx)<<'\t'<<endl; for(int *p = a
阅读全文
摘要:类初步类定义形如1 class Matrix{2 public:3 //operations on Matrix objects will go here4 private:5 vector<double> data;6 };重要的是不要遗忘后面的“;“此外,也可以使用关键词struct替换class定义类。struct从C继承而来,与class的唯一差别在于默认访问标号,struct默认为public,而class默认为private类成员在定义时不能做初始化。只能在对象定义时调用构造函数初始化。注意C++中private封装是对类而不是对对象做的。亦即虽然private成员不能
阅读全文
摘要:开篇序言为什么要重新学习C++呢。因为不想留下遗憾。想把过去没有弄懂的,学得半懂不懂的东西彻底弄明白。所以有此笔记。这是C++系列的第一篇,主要谈除掉class以外的类型,通常称为基本类型。C++ Prime Part 1 的序言写得很到位:基本上所有的语言都具有下列特征:1、内置数据类型,如int,char等等2、表达式和语句:表达式和语句用于操纵上述类型的值3、变量:程序员可以使用变量对所使用的对象命名4、控制结构:if/while/for,这些结构可以使语言称为图灵完备的5、函数:可以把行为抽象为可调用的计算单元大多数现代程序设计语言都采用两种方式扩充上述基本特征集:允许程序员自定义数据
阅读全文
浙公网安备 33010602011771号