小编Jic*_*hao的帖子

如何扫描磁盘上真正庞大的文件?

考虑到磁盘上的一个非常大的文件(可能超过4GB),我想扫描这个文件并计算出特定二进制模式的发生时间.

我的想法是:

  1. 使用内存映射文件(CreateFileMap或boost mapped_file)将文件加载到虚拟内存.

  2. 对于每个100MB映射内存,创建一个线程进行扫描并计算结果.

这可行吗?有没有更好的方法呢?

更新:
内存映射文件将是一个不错的选择,通过1.6GB文件扫描可以在11s内处理.

谢谢.

.net memory-mapped-files large-files

14
推荐指数
3
解决办法
1799
查看次数

如何检索DOM元素的显示属性?

<html>
    <style type="text/css">
        a {
            display: none;
        }
    </style>
    <body>
        <p id="p"> a paragraph </p>
        <a href="http://www.google.com" id="a">google</a>
    </body>
    <script type="text/javascript">
        var a = (document.getElementById('a')).style;
        alert(a.display);
        var p = (document.getElementById('p')).style;
        alert(p.display);
        p.display = 'none';
        alert(p.display);
    </script>
</html>
Run Code Online (Sandbox Code Playgroud)

第一个和第二个alert显示只是一个空字符串,我认为应该是noneblock.然而,在内部display设置之后,第三个alert终于发出警报none.

但为什么?我怎样才能display正确检索属性?

谢谢.

javascript css dom

14
推荐指数
2
解决办法
1万
查看次数

at&t汇编语法来自哪里?

英特尔制造微处理器,因此他可以定义指令格式及其处理器的相应组件,那么为什么AT&T还可以创建汇编语言的语法?

谢谢.

assembly

12
推荐指数
1
解决办法
1473
查看次数

结构初始化C/C++编程语言?

我可以使用代码进行struct初始化:

struct struct_type_id struct_name_id = { value1, value2, value3 };
Run Code Online (Sandbox Code Playgroud)

但不能用:

struct struct_type_id struct_name_id;
struct_name_id = { value1, value2, value3 };
Run Code Online (Sandbox Code Playgroud)

为什么我可以用前者来做,但是后者不能用gcc,g ++,vc2008,vc6?换句话说,为什么c/c ++编程语言不支持这种语法?

谢谢.

c c++ struct

12
推荐指数
1
解决办法
5728
查看次数

如何在C++中生成随机字符串?

我正在寻找在C++中生成随机字符串的方法.这是我的代码:

string randomStrGen(int length) {
    static string charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    string result;
    result.resize(length);

    srand(time(NULL));
    for (int i = 0; i < length; i++)
        result[i] = charset[rand() % charset.length()];

    return result;
}
Run Code Online (Sandbox Code Playgroud)

但这seed(time(NULL))不是随机的.还有其他更好的方法在C++中生成随机字符串吗?

c++ string random

12
推荐指数
1
解决办法
2万
查看次数

如何在C中处理重复的函数名?

我有一个小项目,我在两个不同的源文件中命名了两个相同的名称函数,但是在构建项目时,编译器失败,并且'filename已经在filename.obj中定义了'func_name'.

为什么我不能在两个不同的源文件中有两个具有相同名称的函数?我认为该函数应该是源文件的本地函数,只有当我们在头文件中声明它将变为全局时.

除了更改文件名外,C编程语言中是否还有其他优雅的复制函数名称解决方案?

c naming-conventions

12
推荐指数
4
解决办法
1万
查看次数

为什么受保护不保护这个班级的成员?

class Base {
    protected:
        union {
            struct {
                bool bBold : 1;
                bool bFakeBold : 1;
            };
            int a;
        };
    public:
        bool isBold() {
            return bBold;
        }
};
Run Code Online (Sandbox Code Playgroud)

测试类:

#include <assert.h>
#include <stdio.h>

int main()
{
    Base d;
    d.bBold = false;
    assert(d.isBold() == false);
    d.bBold = true;
    assert(d.isBold() == true);
    printf("good");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

msvc11和g ++都编译没有任何错误.

为什么?

c++

12
推荐指数
1
解决办法
217
查看次数

为什么Perl不支持normal []运算符来索引字符串?

为什么Perl不支持normal []运算符来索引字符串?

几乎所有主流编程语言都支持这个运算符,特别是另外两个'P':Python和PHP.而且,我认为应该很容易实现这个小语法.另外,作为Perl编程语言的哲学 - 尽可能地懒惰,为什么我们懒得使用函数来索引字符串?

Perl 6会支持这种语法吗?

string indexing perl

11
推荐指数
7
解决办法
1831
查看次数

为什么在C++中更喜欢char*而不是string?

我是一个试图编写c ++代码的C程序员.我听说string在C++中比char*在安全性,性能等方面更好,但有时它似乎char*是一个更好的选择.有人建议程序员不要char*在C++中使用,因为我们可以做所有char*可以用字符串做的事情,而且它更安全,更快.

你曾经用过char*C++吗?具体条件是什么?

c c++ string

11
推荐指数
2
解决办法
2万
查看次数

如何快速解码霍夫曼代码?

我在Windows下使用纯霍夫曼代码实现了一个简单的压缩器.但我不太了解如何快速解码压缩文件,我的错误算法是:

枚举代​​码表中的所有霍夫曼代码,然后将其与压缩文件中的位进行比较.结果是可怕的结果:解压缩3MB文件需要6个小时.

你能提供更高效的算法吗?我应该使用Hash还是什么?

更新:根据我朋友Lin的建议,我已经用状态表实现了解码器.我认为这种方法应该优于travesal huffman tree,6s内3MB.

谢谢.

c++ decode huffman-code

11
推荐指数
2
解决办法
2万
查看次数