分享一个刚刚学到的骚操作与一些基础优化

一.手动加栈

  我们有时候会栈溢出,类似于递推的时候,这时候我们就可以用到下面这个操作,来手动加栈。

#pragma comment(linker,"/STACK:1024000000,1024000000")

  原理自行百度,预处理指令详解。

二.寄存器的运用

  其实这个相信大家C时很早就知道了,但是貌似用的人比较少。下面可以给出实际应用实例:

int main()
{
    for (register int i = 1; i < inf; i++) {
        printf("%d",i);
    }
    return 0;
}

  但是,其实C++会自动优化,所以C++没必要用这个操作了。

三.几个基础的位运算操作

  其实这个几个也很平常,很早就会了,但是还是顺便分享一下吧。

  1.除二乘二的操作

   位运算对变量的 >> 和 << 相当于除以2和乘以2,但是效率会更高一点,不用先转换。

  2.判断奇偶性

   对变量用 &1 ,在二进制中奇数的最后一位永远是1,偶数永远是2,而&1的作用就是取变量的二进制数的最后一位。

  3.异或交换两个数

   其实异或交换的  效率不如三变量交换,效率不如三变量交换,效率不如三变量交换(说三遍)

   而且在数组操作中,如果是前后交换,奇数的话最后会 自己异或自己,导致结果为 0.

四.短路运算符 && 和 || 的巧用

  我们知道  当 && 左边的判断为 false 时,就会直接返回 false,不会继续往右判断

        而 || 左边的判断为 true 时,就会直接返回 true ,不会继续往右判断

  这样的话我们就可以用它们来  代替 if 和if-else

  

  A&&B 等同于   if(A) B;

  A&&B || C 等同于  if(A) B else C;

五.三目运算符和代替 if-else

  其实一直都知道三目预算符,但是没想过效率,平常也就不怎么用

  A?B:C 等同于 等同于  if(A) B else C;

六.内联函数

  如果经常调用同一函数,例如swap,不妨设置为内联函数,也就是在函数头加一个 inline

  但是如果被调用函数太过复杂的话,还是不建议用内联函数,例如dfs。

原文地址:https://www.cnblogs.com/caibingxu/p/10657816.html

时间: 2024-08-08 07:35:10

分享一个刚刚学到的骚操作与一些基础优化的相关文章

分享一个 Excel 做的三国杀 游戏 ,想学EXCEL的绝对受用。

分享一个  Excel 做的三国杀 游戏 ,想学EXCEL的绝对受用. 下载地址: http://www.400gb.com/file/81315129  ,保证无毒.

分享一个几年前写的代码生成器

该界面设计部分来自网络.版权归原作者所有. 该工具没有做完成.我只是学习用的.主要是为了熟悉Devexress控件的使用. 1系统主界面 2系统代码生成 3生成的详细代码查看 4该工具写的不是很智能. 如下生成WCF服务契约代码: 1 public class CreateWcfService 2 { 3 4 public static string GreateWcFserviceContract(List<Model> list) 5 { 6 var strsb = new StringB

如何在命令长度受限的情况下成功get到webshell(函数参数受限突破、mysql的骚操作)

0x01 问题提出 还记得上篇文章记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门),我们讲到了一些PHP的一些如何巧妙地绕过数字和字母受限的技巧,今天我要给大家分享的是如何在命令长度受限的情况下成功get到webshell,以及关于函数参数受限的突破,mysql的一些骚操作技巧~~~ 0x02 问题分析 我们先看个例子: <?php $param = $_REGUEST['param']; if(strlen($param) < 17){ eval($param)

于南邮平台游荡关于宽字节注入——骚操作

脚本名:unmagicquotes.py 作用:宽字符绕过 GPC addslashes12345 Example:* Input: 1′ AND 1=1* Output: 1%bf%27 AND 1=1–%20 今天早上在南邮平台游荡的时候,做了一题关于宽字节注入的题目,虽然宽字节注入属于很常见的题目 但是,大多数人使用的都是手工注入,我作为一个小萌新(手工注入太难了QAQ) 今天get到一个新的骚操作: 题目分析: . 首先:进行简单的手工注入操作: 可以看出这个属于典型的宽字节注入:关于宽

位运算的骚操作

位运算的骚操作(一)之四则运算 ? 可以这样说,位运算是我们刚开始学计算机就会接触到的一种东西.那么位运算这么常见,我们是否可以使用它来做一些骚操作呢? 使用的运算符包括下面(java还有一个>>>无符号右移): 含义 运算符 例子 左移(后面补0) << 0011 => 0110 右移(正数前面补0,负数补1) >> 0110 => 0011 按位或 ︳ 0011 ------- => 1011 1011 按位与 & 0011 ----

关于MySQL的一些骚操作——提升正确性,抠点性能

概要 回顾以前写的项目,发现在规范的时候,还是可以做点骚操作的.假使以后还有新的项目用到了MySQL,那么肯定是要实践一番的.为了准备,创建测试数据表(建表语句中默认使用utf8mb4以及utf8mb4_unicode_ci,感兴趣的读者可以自行搜索这两个配置): CREATE TABLE `student` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `no` int(11) unsigned NOT NULL DEFAULT '0' CO

小白学 Python(23):Excel 基础操作(上)

人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变量基础操作 小白学 Python(5):基础运算符(上) 小白学 Python(6):基础运算符(下) 小白学 Python(7):基础流程控制(上) 小白学 Python(8):基础流程控制(下) 小白学 Python(9):基础数据结构(列表)(上) 小白学 Python(10):基础数据结构(

大并发热点行更新的两个骚操作

大并发热点行更新的两个骚操作 要想db操作的性能足够高,巧妙的设计很重要,事务的操作范围要尽量的小.一般情况下我们都是使用某个orm框架来操作db,这一类框架多数的实现方式都是夸网络多次交互来开启事务上下文和执行sql操作,是个黑盒子,包括对 autocommit 设置的时机也会有一些差异,稍微不注意就会踩坑. 在大并发的情况下加上夸网络多次交互,就不可避免的由于网络延迟.丢包等原因导致事务的执行时间过长,出现雪崩概率会大大增加.建议在性能和并发要求比较高的场景下尽量少用orm,如果非要用尽量控

[Unity3D入门]分享一个自制的入门级游戏项目&quot;坦克狙击手&quot;

[Unity3D入门]分享一个自制的入门级游戏项目"坦克狙击手" 我在学Unity3D,TankSniper(坦克狙击手)这个项目是用来练手的.游戏玩法来自这里(http://www.4399.com/flash/127672_3.htm),虽然抄袭了人家的创意,不过我只用来练习(目前还很不成熟,离人家的境界相差很大),坦克.导弹.建筑模型来自网络,应该不会有版权问题吧. 由于模型和代码总共10M以上了,需要源代码和发布的Windows版.网页版程序的同学麻烦点个赞并留下你的邮箱~ 到