
C++
小威学长
提高自己,分享他人
展开
-
C++按值传递对象和传递引用的选择
在我们看到的程序中,发现大多数的参数传递是采用引用传递,这是为什么呢? 通常,使用对象作为参数的函数时,应按引用而不是按值来传递对象,这样可以有效的提高效率。因为按值传递的时候,将会涉及到调用拷贝构造函数生成临时的拷贝,然后又调用析构函数,这在大型的对象上要比传递引用花费的时间多的多。当我们不修改对象的时候,应当将参数声明为const引用。此外,按引用传递,在继承使用虚函数的时原创 2016-01-13 16:47:17 · 1306 阅读 · 0 评论 -
int ,long , long long的最大最小值
unsigned int 0~4294967295 int 2147483648~2147483647 unsigned long 0~4294967295long 2147483648~2147483647long long的最大值:9223372036854775807long long的最小值:-9223372036854775808unsigne原创 2016-04-20 20:40:41 · 38493 阅读 · 1 评论 -
找到一个数的所有字典序即字符串的全排列
字典序:对于数字1、2、3......n的排列,不同排列的先后关系是从左到右逐个比较对应的数字的先后来决定的。例如对于5个数字的排列 12354和12345,排列12345在前,排列12354在后。按照这样的规定,5个数字的所有的排列中最前面的是12345,最后面的是 54321。字典排序算法:1、首先我们对整个序列进行一个快速排序,原创 2015-11-20 15:20:36 · 2721 阅读 · 0 评论 -
输出运算符重载<<为什么一定要使用友元呢
因为当我们使用成员函数的时候,比如Coordinate operator+(const Coordinate &coor){Coordinate temp;temp.m_iX = this0>m_iX+coor.m_iX;temp.m_iY= this0>m_iY+coor.m_iY;return temp;}这种情况下,函数的参数里面,第一个参数其实是隐藏了一原创 2016-05-25 21:01:19 · 4334 阅读 · 0 评论 -
关于C++的getline换行符的问题
例如 string s; char a; cin>>a; cout getline(cin,s); cout 当输入num之后就直接输出a的值了, 并不能输入s。而当我们输入aaa bbb的时候,输出的结果是aaa bbb. 这是因为stdin是缓冲式输入,必须在输入换行后才读入num.但是它只把第一个字原创 2016-04-16 14:22:59 · 8738 阅读 · 0 评论 -
统计一个字符串中出现的子字符串的个数
int calString(string A) { unsigned int cnt = 0; string s = "coder"; string::size_type pos = 0; while((pos = A.find(s,pos))!=string::npos) { ++cnt;原创 2016-04-28 16:14:50 · 1629 阅读 · 0 评论 -
C++中的const_interator
当我们做出如下定义时vector ids;vector::const_iterator iter;并进行了下面的操作,则是正确的 for(iter = ids.begin();iter!=ids.end();++iter) { cout<<(*iter).name<<" "<<(*iter).score<<endl;}但是当我们进行下面的操作时,则是原创 2016-01-18 21:24:26 · 910 阅读 · 0 评论 -
关于使用C++的成员初始化列表
初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。它位于参数列表的右括号之后,函数体的左括号之前。class Animal{public: Animal(int age); ~Animal(); void setAge(int age); int getAge() const;private:原创 2016-01-08 16:18:32 · 786 阅读 · 0 评论 -
C++笔记--返回对象还是返回引用
我们发现,在C++中,有些成员函数返回的是对象,而有些函数返回的又是引用。返回对象和返回引用的最主要的区别就是函数原型和函数头。Car run(const Car &) //返回对象Car & run(const Car &) //返回引用 返回对象会涉及到生成返回对象的副本,这事调用函数的程序可以使用的副本,因此,返回对象的时间成本包括了调用复制构造函数原创 2016-01-13 17:14:28 · 9035 阅读 · 0 评论 -
vector<pair<int,int> >的插入排序,字符串中子字符串个数查找
今天试了一下使用pair在vector中,没想到花了挺长时间的,先记录一下,免得以后忘记了。题目大意是寻找一个字符串中含有的子字符串个数,根据出现的频率降序输出原来的字符串,同时若是频率相同,则按照原来的顺序输出,所以这里需要使用稳定排序。往vector中插入pair的时候,使用make_pair(cnt,ix)构建pair。bool cmp(const pair &a, const原创 2016-04-18 14:48:22 · 3884 阅读 · 0 评论