Thursday, December 27, 2018

c++右值引用

右值引用是c++11提出的, 还真难搞懂, 花了不少的时间找资料 背景 先需要知道什么是左值什么是右值 简单的来说 左值 出现在等号的左边和右边 右值 只能出现在等号的右边, 不能出现在等号的左边 令一种区分左值和右值的办法是取地址符, 只有左值可以被取地址, 右值无法被取地址 所以, 右值是一些常量和一些临时变量, 没有名字 左值是一些有名字的变量 要想要搞懂右值引用就要明白右值引用的出现是来解决什么问题的 可以看这里 https://www.zhihu.com/question/22111546 里面讲的非常明白, 关于右值引用出现的缘由 move() move() 的作用将右值利用起来, 不被浪费 比如一个函数返回了一个占用内存非常大的变量, 在c++中这样势必会出现拷贝的开销 比如 1 2 3 4 5 6 7 8 struct...

Wednesday, December 26, 2018

算法题-二阶魔方还原

pdf版题目 二阶魔方还原 by Siqi Na 时间限制: 1000 ms 内存限制: 10240 KB 问题描述 二阶魔方是 2x2x2 的立方体结构魔方,它共有 8 块,如下图所示: 图1 二阶魔方示意图 我们可以定义魔方作为一个正六面体的六个面为 F(ront), B(ack), U(p), D(own), L(eft), R(ight)。我们根据先前后后,先上后下,先左后右的方法,依次给魔方的每一个方块编号,块编号的方式如下表所示: 表1 二阶魔方块编号表 带块编号的魔方平面展开图如下图所示: 图2 带块编号的二阶魔方平面展开图 与三阶魔方不同,二阶魔方的每个块均有...