跳至主要内容

博文

215. 数组中的第K个最大元素

class Solution { public:         void swap(std::vector<int>& nums, int i, int j)     {         int tmp = nums[i];         nums[i] = nums[j];         nums[j] = tmp;     }     int findKthLargest(std::vector<int>& nums, int k)     {         int start = 0;         int end = nums.size() - 1;         int kb = k;         while (true)         {             int i = start;             int j = end;             int mid = nums[(i + j) / 2];   ...

void*和类成员函数指针的相互转换

linux环境下,强地址转换会在O3的时候出问题 正确的代码如下, #include <stdio.h> #include <stdlib.h> #include <new> #include <string.h> class class1 { public:     class1()     {         b = 10;     }     int memfunc1(int a)     {         printf("memfunc1 this %p\n", this);         return a - b;     } private:     int b; }; template <typename F> F fkvoidcastmemfunc(void * p) {     return *(F*)p; } void* mymalloc(size_t size) {     printf("mymalloc %d\n", size);     return malloc(size); } template <typename F> void * fkmemfunccastvoid(F f) {     void * p = mymalloc(sizeof(F));     new(p) F(f);     return p; } typedef int (class1::*func1)(int); int main(int argc, const char *argv[]) {    ...

linux代码获取某个进程的cpu、内存

struct CPUSnapShot { CPUSnapShot() { char buff[ 256 ] = { 0 }; FILE * fd = fopen( "/proc/stat" , "r" ); fgets(buff, sizeof (buff), fd); fclose(fd); sscanf (buff, "%s %u %u %u %u %u %u %u %u %u" , name, &user, &nice, &system, &idle, &iowait, &irq, &softirq, &stealstolen, &guest); } unsigned int Total () { return user + nice + system + idle + iowait + irq + softirq + stealstolen + guest; } char name[ 256 ]; unsigned int user; unsigned int nice; unsigned int system; unsigned int idle; unsigned int iowait; unsigned int irq; ...

游戏行业成功基本与程序猿无关

无所谓架构、设计模式、代码规范、语言、算法、性能,只要能跑起来实现制作人策划想要的功能就ok了,程序内部的东西有多漂亮短期内是看不出的 还是用盖楼来比喻,制作人总设计师设计好了楼层和户型,然后一堆策划小弟来监工,程序猿开始码砖,这个地方弄堵墙,那个地方扣个洞,然后项目开盘,打打广告,地段和户型价格都ok的话,瞬间日光,项目赚大钱了。但是其实只要楼不塌,没人在乎钢筋是多粗,混泥土里混没混别的玩意 那这样看程序猿就真和民工没什么区别了,所以为了打发无聊时间,给自己找点乐子,程序猿果断开始捣鼓架构、设计模式、代码规范、语言、算法、性能blah blah blah