我有一个元组列表,如下所示:
[(1, 'Red'), (2, 'Yellow'), (6, 'Pink'), (7, 'Blue'), (8, 'Green')]
Run Code Online (Sandbox Code Playgroud)
元组中的数字代表索引。但是,由于我的输入文件中缺少一些索引,因此我需要在列表中插入一些元组,并使列表如下所示:
[(1, 'Red'), (2, 'Yellow'), (3, None), (4, None), (5, None), (6, 'Pink'), (7, 'Blue'), (8, 'Green')]
Run Code Online (Sandbox Code Playgroud)
如果你们中的一些人有任何想法,如果您花时间发表评论,我将非常感激。
我想看看有多少位的int占用,例如count(10)=4,count(7)=3,count(127)=7等
我曾尝试暴力破解(<<荷兰国际集团一1,直到它的严格的数量比大),并使用floor(log2(v))+1,但两者都太慢我的需要。
我知道有一个__builtin_popcnt函数可以快速计算1s 中有多少个s int,但是我很难找到适合我的应用程序的内置函数,是否没有这样的函数或者我忽略了什么?
编辑:我正在使用g++版本9.3.0
Edit2:mediocrevegetable1 的答案被选中,因为它是当时唯一可用的答案g++。但是,未来的读者也可以尝试 chris 的答案以获得更好的兼容性或希望编译器能够提供更高效的执行。