zoukankan      html  css  js  c++  java
  • Problem List

    Problem List

    1. int to string

    int num;
    string snum(num); // error
    

    不存在string(int) 构造函数

    sol 1

    int num;
    char buffer[256];
    string snum(itoa(num,buffer,10));
    

    sol 2

    int num;
    char buffer[256];
    sprintf(buffer,"%d",num);
    string snum(buffer);
    
    

    2. 内存池

    如何构建内存池

    • 构建一个用于保存BLOCK信息的数组管理内存。BLOCK信息定义如下:
    // 结构定义
    enum BLOCK_USAGE
    {
      BLOCK_UNUSED = 0,
      BLOCK_USED
    };
    struct  BLOCK_STATE
    {
      BLOCK_USAGE usage;
      int usage_gap;
      bool bfront;
    };
    
    • 分配时首先查找第一个大小正好等于请求的BLOCK区,如果找不到则将查找BLOCK范围加1。

    3. 避免悬空指针

    在内存释放后不要忘记将指针置空。

    delete[] ptr;
    ptr = NULL;
    

    4. void指针如何++

    • 不能直接对void指令类型进行加减运算,正确的计算方式:
    void* ptr;
    ptr = (void*)((int)prt +1);
    

    5. bitset

    • bitset中index 0 存储数据最低位;
    • 用string初始化bitset时,注意string表示“11100”形式;
    • bitset中数据存储顺序与string表示数据是相反的;
    • bitset要配合位运算灵活使用;
    • bitset位运算时不要考虑bitset中位的存储形式,只考虑数据位运算;
    • bitset提供to_string,to_ulong 转换接口。

    6. 二分查找

    // 递归二分查找
    int GetNumber(int*num, num_len,int k, int left_index, int right_index){
    	// 0. 递归出口
    	if(left_index < right_index){
    		return -1;
    	}
    
    	// 1. 求中值
    	int mid_index = left_index + (right_index - left_index)/2;
    	int mid_value = num[mid_index];
    
    	// 2. 中值比较、更新左右查找边界
    	if(k == mid_value){
    		return mid_index;
    	}
    	else
    	if(mid_value > k){
    		right_index = mid_index - 1;
    	}
    	else{
    		left_index = mid_index + 1;
    	}
    
    	return GetNumber(num, num_len, k, left_index, right_index);
    }
    
    1. 前提数组是排序的;

    2. 注意在更新 right_index/left_index时 添加+/- 1的增量,否则可能造成死循环。

    7.异或

    • 应用 : 利用异或判断两个数是否相同。
    • 简称 :xor
    • 符号 : ^
  • 相关阅读:
    封装、权限修饰符、包、构造器
    从Discuz!NT v2.0扣出来的生成静态页面的方法
    C#中struct与class的区别
    Asp.Net中虚拟文件系统的使用
    C#生成中文验证码
    C#导入Excel表
    IIS5、IIS6、IIS7的ASP.net 请求处理过程比较
    如何保证Session值不丢失
    C#抽象类与接口的区别
    C#实现DES加密解密
  • 原文地址:https://www.cnblogs.com/helo-blog/p/5856420.html
Copyright © 2011-2022 走看看