c++
_小明同学__
,
展开
-
C语言取得int的位数
//取得一个int的位数int getLength(int num){int n = num, count = 0;while (n){count++;n /= 10;}return count;}原创 2016-09-16 17:28:40 · 2701 阅读 · 0 评论 -
STL中map取最大最小键值方法(POJ3481)
首先介绍一下STL中map的架构:SGI STL map以红黑树为低层级制,每个节点的内容是一个pair。pair的第一个元素被视为键值(key),第二个元素被视为实值(value)。那么如何用O(1)的时间去取得最小或者最大的key值相对应的对(注意不是value,因为map是以key值即键值来构建平衡树的)。下面呈现一个代码:[cpp] view plain转载 2017-11-15 23:14:03 · 15308 阅读 · 0 评论 -
c++派生类向基类转换的可访问性
只有当 D 公有地继承 B 时,用户代码才能使用派生类向基类的转换;如果 D 继承 B 的方式 是受保护的或者私有的,则用户代码不能使用该转换不论 D 以什么方式继承 B ,D 的成员函数和友元都能使用该派生类向基类的转换;派生类向直接基类的类型转换对于派生类的成员和友元来说永远是可访问的如果 D 继承 B 的方式是公有地或者受保护的,则 D 的派生类的成员和友元可以使用 D 向 B 的原创 2017-10-22 15:44:52 · 421 阅读 · 0 评论 -
c++访问控制与继承
不考虑继承的话,我们可以认为一个类有两种不同的用户:普通用户和类的实现者普通用户编写的代码使用类的对象,这部分代码只能访问类的公有(接口)成员实现者则负责编写类的成员和友元的代码,成员和友元既能访问 类的公有部分,也能访问类的私有(实现)部分派生访问说明符对于派生类的成员(友元)能否访问其直接基类的成员没有影响,对基类成员的访问权限只与基类中的访问说明符有关,派生访问说明符的目原创 2017-10-22 14:34:41 · 220 阅读 · 0 评论 -
c++转移线程所有权
c++中有很多资源占有类型,比如std::ifstream,std::unique_ptr,std::thread 都是可以移动不可拷贝的。可以通过std::move()转移一个线程所有权给一个未关联线程的thread对象,但是不能通过赋一个新值的方式丢弃一个线程。void haha(){}void heihei(){}int main(){ thread t1(haha); /原创 2017-10-17 22:35:24 · 847 阅读 · 0 评论 -
c++构造函数盲目拷贝期待引用类型的实参
void haha(int &i){ ++i; std::cout << i;}int main(){//① int nn = 10; haha(nn); std::cout << nn; //输出11-11//② int nnn = 20; std::thread tt(haha, nnn); tt.join(); std::cout << nnn; //输出21原创 2017-10-17 21:44:28 · 195 阅读 · 0 评论 -
c语言将小写字母转换为大写字母
//将小写字母转换为大写字母char* toUpperCase(char source[]){for (int i = 0; i {source[i] -= 32;}return source;}原创 2016-09-16 17:36:29 · 11590 阅读 · 0 评论 -
插入排序顺序倒序
//插入排序int* insertSort(int a[], int len, bool align = true){for (int i = 1; i {if (align){//从小到大if (a[i] {int j = i - 1;int x = a[i];while (x {a[j + 1] = a[j];j--;//j == -原创 2016-09-16 17:34:16 · 873 阅读 · 0 评论 -
将int数组各个元素整合到一个int
//将int数组各个元素整合到一个intint join(int* num, int len){float pow(float x, float y);int dest = 0;for (int i = 0; i {dest += num[i] * pow(10, len - 1 - i);}return dest;}原创 2016-09-16 17:31:59 · 712 阅读 · 0 评论 -
将一个int的各个位解析到int数组
//将一个int的各个位解析到int数组int* split(int num, int len){int src = num, length = len;int* dest = (int*)malloc(sizeof(int) * 4);for (int i = length - 1; i + 1 > 0; i--){dest[i] = src % 10;src =原创 2016-09-16 17:30:41 · 368 阅读 · 0 评论 -
C++ STL中Map的按Key排序和按Value排序
【参考代码】#include #include #include using namespace std; typedef pairint> PAIR; ostream& operatorconst PAIR& p) { return out "\t" } int main() { mapint>转载 2017-11-15 23:22:31 · 253 阅读 · 0 评论