Blog

sheet:STL

STL #

vector #

list #

  • uva11988 https://www.udebug.com/UVa/11988 悲剧文本, list, insert返回新插入元素的迭代器。
  • hdu1276 list调用erase,返回的是指向下个元素的迭代器。
  • hdu6375 使用deque会超出内容限制,使用list,练习push_front, push_back, front, back, splice.

stack #

  • poj1028 练习stack基本操作,比如:push, pop, empty.
  • luogu1739 用stack判断括号匹配,入门级。
  • uva514 铁轨,模拟stack。
  • uva442 stack解析矩阵乘法表达式。

queue #

  • poj1915 广度优先练习题,queue的基本操作。
  • poj1442 priority_queue,结合最小堆和最大堆,确定序列中第i小的元素的值。
  • uva12100 在queue中存放数组的下标,用单独的数组存放权重并排序。
  • uva210 综合使用deque和queue模拟进程调度,中等难度。

bitset #

  • poj2443 用bitset记录每个集合的元素,再根据每对数据来循环查找,会超时。用bitset记录每个数字所在的集合,可以少掉查找的循环。

set/multiset #

  • hdu1412 练习set使用的基本题,简单。
  • poj1281 multiset,begin, rbegin。输入命令"e",需要break,退出里层的输入循环。 erase(*it)
  • hdu1263 双重map,iterator的用法。
  • poj3275 判断关系数量,利用bitset的位异或运算判断关系的传递。

map/multimap #

  • poj2418 map会直接初始化,可用下面的形式直接计数:

    m[name]++;
    

    getline读入整行,控制精度。

  • poj3481 map直接使用下标插入元素,map没有rbegin。

algorithm #

阅读艺术

Content #

阅读艺术的定义:这是一个凭借着头脑运作,除了玩味读物中的一些字句之外,不假任何外助,以一己之力来提升自我的过程。你的头脑会从粗浅的了解推进到深入的理解。而会产生这种结果的运作技巧,就是由许多不同活动所组合成的阅读的艺术。

阅读的目标:为获得资讯而读,以及为求得理解而读我们只能从比我们“更高杆”的人身上学习。我们一定要知道他们是谁,如何跟他们学习。有这种想法的人,就是能认知阅读艺术的人,就是我们这本书主要关心的对象。而任何一个可以阅读的人,都有能力用这样的方式来阅读。

事实上,运用阅读以增加资讯与洞察力,与运用阅读增长理解力是很容易区分出来的。我们必须承认,有时候光是听别人转述一些讯息,也能增进很多的理解。这里我们想要强调的是:本书是关于阅读的艺术,是为了增强理解力而写的。幸运的是,只要你学会了这一点,为获取资讯而阅读的另一点也就不是问题了。

From #

《如何阅读一本书》 莫提默·艾德勒 查尔斯·范多伦

Configure the docker daemon to use a proxy

Content #

Daemon configuration #

You may configure proxy behavior for the daemon in the daemon.json file, or using CLI flags for the –http-proxy or –https-proxy flags for the dockerd command. Configuration using daemon.json is recommended.

{
    "proxies": {
        "http-proxy": "http://proxy.example.com:3128",
        "https-proxy": "https://proxy.example.com:3129",
        "no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
    }
}

After changing the configuration file, restart the daemon for the proxy

$ sudo systemctl restart docker

Environment variables #

The Docker daemon checks the following environment variables in its start-up environment to configure proxy behavior:

...

阅读越主动,效果越好

Content #

捕手在接球时所发挥的主动是跟投手或打击手一样的。投手或打击手是负责“发送”的工作,他的行动概念就在让球动起来这件事上。捕手或外野手的责任是“接收”,他的行动就是要让球停下来。两者都是一种活动,只是方式有点不同。如果说有什么是被动的,就是那只球了。球是毫无感觉的,可以被投手投出去,也可以被捕手接住,完全看打球的人如何玩法。

作者与读者之间的关系也很类似。写作与阅读的东西就像那只球一样,是被主动、有活力的双方所共有的,是由一方开始,另一方终结的。

我们可以把这个类比的概念往前推。捕手的艺术就在能接住任何球的技巧——快速球、曲线球、变化球、慢速球等等。同样地,阅读的艺术也在尽可能掌握住每一种讯息的技巧。

值得注意的是,只有当捕手与投手密切合作时,才会成功。作者与读者的关系也是如此。作者不会故意投对方接不到的球,尽管有时候看来如此。在任何案例中,成功的沟通都发生于作者想要传达给读者的讯息,刚好被读者掌握住了。作者的技巧与读者的技巧融合起来,便达到共同的终点。事实上,作者就很像是一位投手。有些作者完全知道如何“控球”:他们完全知道自己要传达的是什么,也精准正确地传达出去了。因此很公平地,比起一个毫无“控球”能力的“暴投”作家,他们是比较容易被读者所“接住”的。

拿同样的书给不同的人阅读,一个人却读得比另一个人好这件事,首先在于这人的阅读更主动,其次,在于他在阅读中的每一种活动都参与了更多的技巧。这两件事是息息相关的。阅读是一个复杂的活动,就跟写作一样,包含了大量不同的活动。要达成良好的阅读,这些活动都是不可或缺的。一个人越能运作这些活动,阅读的效果就越好。

From #

《如何阅读一本书》 莫提默·艾德勒 查尔斯·范多伦

媒体的泛滥资讯阻碍了我们的理解力

Content #

或许我们对这个世界的了解比以前的人多了,在某种范围内,知识(knowledge) 也成了理解(understanding)的先决条件。这些都是好事。但是,“知识”是否那么必然是“理解”的先决条件,可能和一般人的以为有相当差距。我们为了“理解”(understand)一件事,并不需要“知道”(know)和这件事相关的所有事情。太多的资讯就如同太少的资讯一样,都是一种对理解力的阻碍。换句话说,现代的媒体正以压倒性的泛滥资讯阻碍了我们的理解力。

会发生这个现象的一个原因是:我们所提到的这些媒体,经过太精心的设计,使得思想形同没有需要了(虽然只是表象如此)。如何将知识分子的态度与观点包装起来,是当今最有才智的人在做的最活跃的事业之一。电视观众、收音机听众、杂志读者所面对的是一种复杂的组成——从独创的华丽辞藻到经过审慎挑选的资料与统计——目的都在让人不需要面对困难或努力,很容易就整理出“自己”的思绪。但是这些精美包装的资讯效率实在太高了,让观众、听众或读者根本用不着自己做结论。相反的,他们直接将包装过后的观点装进自己的脑海中,就像录影机愿意接受录影带一样自然。他只要按一个“倒带”的钮,就能找到他所需要的适当言论。他根本不用思考就能表现得宜。

From #

《如何阅读一本书》 莫提默·艾德勒 查尔斯·范多伦

sub:Ceph

Content #

RADOSGW - Reliable Automatic Distributed Object Storage Gateway OSD - Object Storage Device MDS - Metadata Server RBD - Rados Block Device

From #

book:如何阅读一本书

Content #

第一篇 阅读的层次 媒体的泛滥资讯阻碍了我们的理解力 阅读越主动,效果越好 阅读艺术 经由指导的学习与自我发现的学习

阅读的层次 #

基础阅读(elementary reading) #

检视阅读(inspectional reading) #

特点在强调时间。在这个阅读层次,学生必须在规定的时间内完成一项阅读的功课。譬如他可能要用十五分钟读完一本书,或是同样时间内念完两倍厚的书。

用另一种方式来形容这个层次的阅读,就是在一定的时间之内,抓出一本书的重点——通常是很短,而且总是(就定义上说)过短,很难掌握一本书所有重点。

检视阅读是系统化略读(skimming systematically)的一门艺术。

分析阅读(analytical reading) #

分析阅读永远是一种专注的活动。在这个层次的阅读中,读者会紧抓住一本书——这个比喻蛮恰当的——一直要读到这本书成为他自己为止。弗兰西斯·培根曾经说过:“有些书可以浅尝即止,有些书是要生吞活剥,只有少数的书是要咀嚼与消化的。”分析阅读就是要咀嚼与消化一本书。

主题阅读(syntopical reading) #

第八章 第四章 阅读的第二个层次:检视阅读

◆ 检视阅读一:有系统的略读或粗读◆ (1)先看书名页,然后如果有序就先看序。◆ (2)研究目录页,对这本书的基本架构做概括性的理解。◆ (3)如果书中附有索引,也要检阅一下◆ (4)如果那是本包着书衣的新书,不妨读一下出版者的介绍。◆ (5)从你对一本书的目录很概略,甚至有点模糊的印象当中,开始挑几个看来跟主题息息相关的篇章来看。◆ (6)最后一步,把书打开来,东翻翻西翻翻,念个一两段,有时候连续读几页,但不要太多。就用这样的方法把全书翻过一遍,随时寻找主要论点的讯号,留意主题的基本脉动。最重要的是,不要忽略最后的两三页。就算最后有后记,一本书最后结尾的两三页也还是不可忽视的。

◆ 检视阅读二:粗浅的阅读

◆ 一个很重要又有帮助的阅读规则,但却经常被忽略。这个规则很简单:头一次面对一本难读的书的时候,从头到尾先读完一遍,碰到不懂的地方不要停下来查询或思索。

◆ 只注意你能理解的部分,不要为一些没法立即了解的东西而停顿。继续读下去,略过那些不懂的部分,很快你会读到你看得懂的地方。集中精神在这个部分。继续这样读下去。将全书读完,不要被一个看不懂的章节、注解、评论或参考资料阻挠或泄气。如果你让自己被困住了,如果你容许自己被某个顽固的段落绑住了,你就是被打败了。在大多数情况里,你一旦和它纠缠,就很难脱困而出。在读第二遍的时候,你对那个地方的了解可能会多一些,但是在那之前,你必须至少将这本书先从头到尾读一遍才行。

◆ 所谓阅读速度,理想上来说,不只是要能读得快,还要能用不同的速度来阅读——要知道什么时候用什么样的速度是恰当的。检视阅读是一种训练有素的快速阅读,但这不只是因为你读的速度快——虽然你真的读得很快——而是因为在检视阅读时,你只读书中的一小部分,而且是用不同的方式来读,不一样的目标来读。分析阅读通常比检视阅读来得慢一些,但就算你拿到一本书要做分析阅读,也不该用同样的速度读完全书。每一本书,不论是多么难读的书,在无关紧要的间隙部分就可以读快一点。而一本好书,总会包含一些比较困难,应该慢慢阅读的内容。

第九章 第五章 如何做一个自我要求的读者

◆ 主动的阅读基础:一个阅读者要提出的四个基本问题

◆ 主动阅读的核心作个简要的说明,那就是:你在阅读时要提出问题来—在阅读的过程中,你自己必须尝试去回答的问题。

◆ 关于一本书,你一定要提出四个主要的问题。 插图整体来说,这本书到底在谈些什么?你一定要想办法找出这本书的主题,作者如何依次发展这个主题,如何逐步从核心主题分解出从属的关键议题来。(2)作者细部说了什么,怎么说的?你一定要想办法找出主要的想法、声明与论点。这些组合成作者想要传达的特殊讯息。(3)这本书说得有道理吗?是全部有道理,还是部分有道理?除非你能回答前两个问题,否则你没法回答这个问题。在你判断这本书是否有道理之前,你必须先了解整本书在说些什么才行。然而,等你了解了一本书,如果你又读得很认真的话,你会觉得有责任为这本书做个自己的判断。光是知道作者的想法是不够的。(4)这本书跟你有什么关系?如果这本书给了你一些资讯,你一定要问问这些资讯有什么意义。为什么这位作者会认为知道这件事很重要?你真的有必要去了解吗?如果这本书不只提供了资讯,还启发了你,就更有必要找出其他相关的、更深的含意或建议,以获得更多的启示。

◆ 任何一种超越基础阅读的阅读层次,核心就在你要努力提出问题(然后尽你可能地找出答案)。这是绝不可或忘的原则。这也是有自我要求的阅读者,与没有自我要求的阅读者之间,有天壤之别的原因。

◆ 要保持主动的阅读,你不只是要有意愿这么做而已,还要有技巧——能战胜最初觉得自己能力不足部分,进而自我提升的艺术。

◆ 俗话说:“你必须读出言外之意,才会有更大的收获。”而所谓阅读的规则,就是用一种比较正式的说法来说明这件事而已。此外,我们也鼓励你“写出言外之意”。不这么做,就难以达到最有效的阅读的境界。

◆ 在检视阅读中,要回答的问题是:第一,这是什么样的一本书?第二,整本书在谈的是什么?第三,作者是借着怎样的整体架构,来发展他的观点或陈述他对这个主题的理解?你应该做一下笔记,把这些问题的答案写下来。尤其如果你知道终有一天,或许是几天或几个月之后,你会重新拿起这本书做分析阅读时,就更该将问题与答案先写下来。要做这些笔记最好的地方是目录页,或是书名页,这些是我们前面所提的笔记方式中没有用到的页数。

◆ 在这里要注意的是,这些笔记主要的重点是全书的架构,而不是内容——至少不是细节。因此我们称这样的笔记为结构笔记(structural note-making)。

◆ 结构笔记与概念笔记(conceptual note-making)是截然不同的。而当你同时在读好几本书,在做主题阅读——就同一个主题,阅读许多不同的书时,你要做的又是什么样的笔记呢?同样的,这样的笔记也应该是概念性的。你在书中空白处所记下的页码不只是本书的页码,也会有其他几本书的页码。

...

小数点后保留两位小数(iomanip)

Content #

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
  float pi = 3.14159265;
  cout << fixed << setprecision(2) << pi << endl;
  return 0;
}

From #

bitset(STL)

Content #

定义一个1000位的二进制数s:

bitset<1000> s;

最右侧低位为0,左侧为高位。

初始化 #

bitset<n> b; //b有n位,每位都是0
bitset<n> b(u);  //unsinged long型的u的一个副本
string s("1100");
bitset<n> b(s);  //string对象s中含有的位串的副本
bitset<n> b(s, pos, n);  //s从位置pos开始的n位的副本

string对象的最右边字符(下标最大的字符)用来初始化bitset对象的低阶位(下标为0的位)。

From #