首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

STL:调用empty()不是检查size()是否为0

《Effective STL》给出的建议是,调用empty()。 为什么呢? 因为不同容器的empty()实现,一定是耗费常数时间,size()则不一定。...std::vector bool empty() { return begin() == end(); } vector是检查首尾两个迭代器是否相等。...所以empty()函数是在检查这两个指针是否指向同一位置,若是,则说明容器为空,返回true。这当然是常数时间。...《Effective C++》这一节所强调的,正是stl中各个容器设计时关于empty()函数与别的成员函数之间的性能取舍问题。当然,如上所述,性能优劣并不是绝对的,取决于各家编译器的实现。...所以,如果在开发中遇到需要判断容器是否为空的时候,推荐大家使用empty(),不是判断size() == 0。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    linux vim命令详解_linux中查看文件内容的命令

    “a” 光标所在字符的下一个字符插入 “A” 光标所在行的行尾插入字符 “gg” 光标移动到首行 “G” 光标移动到尾行 3、底行模式 最后就是底行模式了,命令模式下按“:”,光标就到最后一行了...vim工作方式设定 末行模式下输入 :set 指定信息 :set nu 在每行行首显示行号 :set nonu 不显示行号 :set cursorline 显示下划线 :set spell 开启拼写检查功能...:set nospell 关闭拼写检查功能 / 关键字 匹配关键字字符,并高亮显示,按n匹配下一个,按N匹配上一个 在文件中的修改在退出后就失效了,想要永久更改就要更改vim配置文件“/etc/...vimrc”, 在后面加上设置就行了, 这里的用法虽然不是全部的用法,却是最常用的,一般的情况下,就够用了, 可视化模式 可视化模式下批量添加字符 1.把光标停留在想要加入字符所在的列的第一行 2.移动光标选择添加字符所在列...字符批量添加成功 vim的字符替换 (可视化模式下) %s/原有字符/新字符/g #全文替换 1,5s/原有字符/新字符/g #替换1到5行的字符 g #替换出现的所有关键字,如果不加”g”替换没行出现的第一个

    7.8K40

    Linux 三剑客(grep awk sed)常用操作笔记

    sed 命令常用操作 简单替换(替换每个匹配行的首次匹配项) 精确替换 正则替换 指定替换起点(从匹配的所以行的指定匹配次数开始替换) 全部替换(替换所有匹配行的匹配项) 替换匹配行整行内容(将匹配的整行内容替换...bookbookbookbook name=jack ip=127.0.0.1 url=https://abc.xxxxx.com xyz showowof3442 lmn bookbook 简单替换(替换每个匹配行的首次匹配项...lmn goodbook 可以看到只将每个匹配到的行的第一次匹配到的 book 并替换成了 good 精确替换 上面的替换虽然可以做到将book替换成新的内容,但是有时候我们可能需要对某个单词进行替换,不能替换包含这个单词的单词...newwordbookbook name=jack ip=127.0.0.1 url=https://abc.xxxxx.com xyz showowof3442 lmn newword 可以看到,第一行最后一行都被替换了...,实际上,我们只想替换 bookbook ,也即是需要精确匹配,不是现在的模糊匹配,这时候可以用下面的方式进行替换: sed 's/\/newword/' file.conf

    99610

    生信马拉松 Day13 Linux-3笔记

    grep 'TATAGG' -r Data/ -n-w word,精确地查找某个关键词,但是除了 - 和 _ 之外的符号可能没有办法过滤,而把类似=gene;中的gene也纳入所以grep搜完之后记得肉眼检查一下...统计没有匹配项的行数-e 多个匹配模式,有几个关键词就写几个-ecat Data/example.gtf | grep -w -e 'exon' -e 'CDS'注意预防性地加-w,保证匹配的是“CDS”不是形如...的替换共同使用-e 多个命令,先做一个再做一个 -r 正则表达式script" 由 'script' address command 构成address的内容2 :第2行2,4 :第2~4行2,$ :第2行到最后一行...,$表示最后2~3:从第2行开始,每隔3行取1行,2/5/82,+4:从第2行到2+4行/pattern/匹配上pattern的行其中使用!...d:delete,删除某一行或某几行,也可以指定删除匹配上的行 cat readme.txt | sed '1d'c:change,改变指定行的内容,整行替换s:更改或替换字符串,改变行中的部分内容

    14520

    Range单元格对象常用方法(一)

    由于删除方法与平时操作都类似,下面演示整行和整列删除。 代码删除A2单元格所在的第2行,删除了B2单元格所在的B列。 在具体实例中使用删除方法时,一定注意删除整行时要从由下向上删除。...Range("a" & i) = "" Then Range("a" & i).EntireRow.Delete End If Next End Sub 首先通过单元格end属性获得最后一行的行号...,然后循环从最一行向上进行IF判断,当单元格为空值时,删除整行循环结束。...下面就将循环改成从A1至最后。来分析演示下: 改成从上向下单元格循环后,执行代码结果有一个空单元格没有删除掉,通过代码分析下,当i=4时,A4单元格为空符合条件,这时第4行删除。...此时代码已经进入下一个循环i=5,判断A5单元格是否为空值。(新的A4单元格为空值但没有被判定。)代码的错误就产生了。 ---- 本节主要介绍了单元格的常见方法,包括复制、剪切、清除和删除等。

    2K40

    Linux grep命令教程

    示例部分展示了如何使用这些参数进行基本搜索、忽略大小写的搜索、反向匹配、显示行号、统计匹配行数、递归搜索、使用正则表达式、匹配整个单词或整行、显示匹配行及其前后行、指定多个模式、输出匹配的部分、搜索包含空格的字符串...:反向匹配,输出不匹配的行 -n:显示匹配行的行号 -c:统计匹配行的数量 -l:只显示包含匹配项的文件名 -r或-R:递归搜索目录下的所有文件 -E:使用扩展正则表达式 -F:将模式视为固定字符串,不是正则表达式...-w:匹配整个单词 -x:匹配整行 -A n:显示匹配行及其后n行 -B n:显示匹配行及其前n行 -C n:显示匹配行及其前后各n行 -h:输出时不显示文件名 -H:输出时总是显示文件名 -o:输出匹配的部分...匹配整行(-x) 匹配整行: grep -x "Hello, world!" example.txt 输出: Hello, world! 10....输出匹配的部分(-o) 输出匹配的部分,不是整行: grep -o "hello" example.txt 输出: hello hello 13.

    35910

    linux sort命令 排序,Linux sort排序方法

    先看一下sort命令格式: sort [参数] file 参数详解: -b 会忽略每一行前面的所有空白部分,从第一个可见字符开始比较。 -d:按照字典顺序排序,支持字母、数值、空白。...-c 会检查文件是否已排好序,如果乱序,则输出第一个乱序的行的相关信息,最后返回1。...-C 会检查文件是否已排好序,如果乱序,不输出内容,仅返回1 -u 输出重复行的第一行,结合’-f’使用时,重复的小写会被丢弃。...,这最后一次排序是对整行按照完全默认规则进行,也就是按字符集,升序排序。...如果第二行第三列有重复的会根据第一行的顺序排序。 上面第二列是字母不是数值,按数值排序时,字母是不可识别的字符,遇到不可识别的字符会立即结束该字段的排序。

    5K40

    Linux指令入门-文本处理

    gg 移动游标到最后一行 G 快速回到上一次光标所在位置 Ctrl+o 删除当前字符 x 删除前一个字符 X 删除整行 dd 删除一个单词 dw或daw 删除至行尾 d$或D 删除至行首 d^ 删除到文档末尾...word 重复前一个搜寻的动作 :n 从第一行最后一行寻找word1字符串,并将该字符串取代为word2 :1,$s/word1/word2/g或 :%s/word1/word2/g 使用示例 在本示例将使用...cat /dev/null > test.txt 再次检查文件内容。 cat test.txt 命令输出结果: ? more 命令描述:more命令从前向后分页显示文件内容。...接着处理下一行,这样不断重复,直到文件末尾。 注意: sed命令不会修改原文件,例如删除命令表示某些行不打印输出,不是从原文件中删去。 如果要改变源文件,需要使用-i选项。...sed '3,$d' /etc/passwd 在最后一行新增行。

    3.5K20

    Linux正则匹配详解

    "\S" 匹配任意不是空白符的字符 "\D" 匹配任意非数字的字符 "\B" 匹配不是单词开头或结束的位置 "[^abc]" 匹配除了abc以外的任意字符 量词 贪婪(...懒惰量词使用另一种方式匹配,它从目标的起始位置开始尝试匹配,每次检查一个字符,并寻找它要匹配的内容,如此循环直到字符结尾处....b” 只会取到最后的三个字符"acb” “{n,m}?": 重复n到m次,但尽可能少重复,例如 “aaaaaaaa” 正则 “a{0,m}” 因为最少是0次所以取到结果为空 “{n,}?"...egrep和fgrep的命令跟grep有很小不同。...~不匹配 /reg/在整行范围内匹配reg,匹配到就执行后续动作 !/reg/ 整行没匹配到reg,才执行后续的动作 $1~/reg/在第一字段匹配reg $1!

    11.7K20

    vim常用命令总结

    没有指定命令计数作为参数的话, "G"会把光标定位到最后一行上。"gg"命令是跳转到第一行的快捷的方法。...21.匹配一行的开头与结尾    ^ 字符匹配一行的开头。$字符匹配一行的末尾。 所以"/was$"匹配位于一行末尾的单词was,所以"/^was"匹配位于一行开始的单词was。...需要在Normal模式下执行,它重复的是命令,不是被改动的内容, 30.Visual模式 按"v"可以进入Visual模式。移动光标以覆盖你想操纵的文本范围。同时被选中的文本会以高亮显示。...H    移至视窗的第一行。 M    移至视窗的中间那行。 L    移至视窗的最后一行。 G    移至该文件的最后一行。 +    移至下一列的第一个字元处。 - 移至上一列的第一个字元处。...$    由游标所在位置至该行的最后一个字元。 0    由游标所在位置至该行的第一个字元。  整行动作 dd    删除整行。 D    以行为单位,删除游标后之所有字元。

    1.3K10

    Linux awk学习

    awk是通过一行一行来处理文件的,上面这条语句执行的过程就是: 1.awk读入一行内容 2.判断是否符合模式中的条件(NR>=2),如果匹配到则执行对应的动作({print $0}),如果没有匹配到,继续读取下一行...3.继续读取下一行 4.重复1-3,直到读取到最后一行 其中的$0实际上是awk的内置变量,代表的是当前一整行记录,awk的内置变量有很多,我们这里举出其中的几个来进行说明,可以借用这些内容来进行各种方式的分割操作...,不是一堆字符串,默认情况下,每一行内容都是一条记录,并且以换行符结尾,我们可以用整行来进行输出 ?...这里再解释一下那个BEGIN是做什么的 BEGIN{}: 读入第一行文本之前执行的语句,一般用来初始化操作{}: 逐行处理END{}: 处理完最后以行文本后执行,一般用来处理输出结果 接下来再说一下正则表达式的应用...比如我们来匹配一下以字符u开头的整行记录 ?

    4.3K20

    参数量仅0.5B,谷歌代码补全新方法将内部生产效率提升6%

    在谷歌的 monorepo 上训练期间,研究者掩蔽了一行代码的其余部分和一些后续行,以模拟正在积极开发的代码。...谷歌使用的 ML 模型预测多个 token,直到行尾,但他们考虑第一个 token 来匹配 SE 的预测。他们确定出同样包含在 SE 建议中的前三个 ML 建议,并将其排名提升(boost)到首位。...在 28% 的已被接受的建议中,补全结果是明显受益于上述 boost 操作的,其排名由于 boost 的存在更高,只有 0.4% 的已被接受结果与此规律相反。...作为对照,对于没有添加语义检查的语言,研究者看到接受度增加到了原来的 1.3 倍。 可以访问源代码的语言服务器和 ML 后端并置在云端。它们都对 ML 补全建议执行语义检查。...例如,如果用户查看一个 API 的可能方法,则内联完整行补全显示完整方法调用,其中还包含调用的所有参数。 ML 集成的完整行完成继续关注的语义下拉完成。 ML 提出的多行补全建议。

    69810

    vim 学习笔记(四)—— 常用命令汇总

    2.删除一行 删除一整行内容使用"dd"命令。删除后下面的行会移上来填补空缺。 3.删除换行符 在Vim中你可以把两行合并为一行,也就是说两行之间的换行符被删除了:命令是"J"。...没有指定命令计数作为参数的话, "G"会把光标定位到最后一行上。“gg"命令是跳转到第一行的快捷的方法。...21.匹配一行的开头与结尾 ^ 字符匹配一行的开头。$字符匹配一行的末尾。 所以"/was$“匹配位于一行末尾的单词was,所以”/^was"匹配位于一行开始的单词was。...需要在Normal模式下执行,它重复的是命令,不是被改动的内容, 30.Visual模式 按"v"可以进入Visual模式。移动光标以覆盖你想操纵的文本范围。同时被选中的文本会以高亮显示。...对于以"dd"删除的整行内容,"P"会把它置于当前行的上一行。"p"则是至于当前行的后一行。也可以对命令"p"和"P"命令使用命令记数。它的效果是同样的内容被取回指定的次数。

    99230

    如何使特定的数据高亮显示?

    这一次,我们要用到的并不是这些内置的条件规则,而是要自己DIY条件规则。 在实操之前,肯定会有小伙伴问到:为什么不能直接用“突出显示单元格规则”里的“大于”规则?...所以,在这里要提醒小伙伴们,如果想实现整行的突出显示,“突出显示单元格规则”是不适用的。“突出显示单元格规则”顾名思义,就是对符合规则的“单元格”进行设置,不是对“数据行”进行设置。...首先,选定要进行规则设置的数据范围:选定第一行数据行后,同时按住Ctrl+Shift+向下方向键,可快速选定所有数据行。...$F2,F2单元格前面的这个符号$,是绝对引用符号,表示锁定的意思,也就是锁定F列,根据F列的数据来进行判断,F列为绝对引用。 那为什么锁定列,不锁定行呢?为什么F2这个“2”不锁定?...像这种锁定列不锁定行,或锁定行不锁定列的,在excel里又称为“混合引用”。 最终效果如下图所示: 只有薪水大于20000的数据行,才会被突出显示。

    5.5K00
    领券