小编Tan*_*ura的帖子

google microbenchmarking cpu 缩放警告

当我运行 google基准测试时,我收到一条警告,说已启用 cpu 缩放。这是我可以在构建时通过标志或在运行时通过参数切换的功能还是系统设置?

c++ microbenchmark

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

通用二维数组

我想像这样创建一个二维数组:

void **mdeclaraMatrice(int nrLini,int nrColoane, int sizeOfElement)
{
    int i;
    void **m = malloc(nrLini * 4);
    if(m==NULL)
        return NULL;
    for(i=0; i<nrLini; i++)
    {
        *(m + (i*4)) = malloc(nrColoane * sizeOfElement);
        if(*(m + (i*4)) == NULL)
             return NULL;
    }
    return m;
}
Run Code Online (Sandbox Code Playgroud)

我想这样用它:

int **m = (int **)mdeclaraMatrice(n,m,sizeof(int));
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我做错了什么?

c

7
推荐指数
1
解决办法
476
查看次数

检查stdin缓冲区是否为空

我试图用字符读取一个数字字符,但我不知道stdin缓冲区是否为空.

我的第一个解决方案是在stdin缓冲区中寻找'\n'字符,但如果我输入以''(空格)分隔的多个数字,那就不好了.

我怎么知道在stdin缓冲区中我是否有字符?

我不得不用C语言做,并且便携.

c

5
推荐指数
1
解决办法
3万
查看次数

分配临时变量或计算表达式两次

我试图尽可能高效地编写代码,我遇到了以下情况:

int foo(int a, int b, int c) 
{
    return (a + b) % c; 
}
Run Code Online (Sandbox Code Playgroud)

都好!但是,如果我想检查表达式的结果是否与常量不同,那该怎么办呢myConst.可以说我可以负担一个临时变量.

什么方法是以下最快的方法:

int foo(int a, int b, int c) 
{
    return (((a + b) % c) != myConst) ? (a + b) % c : myException; 
} 
Run Code Online (Sandbox Code Playgroud)

要么

int foo(int a, int b, int c) 
{
    int tmp = (a + b) % c
    return (tmp != myConst) ? tmp : myException; 
}
Run Code Online (Sandbox Code Playgroud)

我无法决定.'line'在哪里重新计算比分配和释放临时变量更昂贵,反之亦然.

c c++

4
推荐指数
3
解决办法
381
查看次数

复制目录内容

我要将目录(tmp1)的内容复制到另一个目录(tmp2)。tmp1可能包含文件和其他目录。我想使用C / C ++复制tmp1的内容(包括模式)。如果tmp1包含目录树,则要递归复制它们。

什么是最简单的解决方案?

我找到了一种打开目录并读取每个条目并使用cp命令将其复制的解决方案。还有更简单的解决方案吗?

c c++ linux

3
推荐指数
1
解决办法
7757
查看次数

覆盖整数compareTo?或者欺骗它?

我正在尝试编写一个通用的堆类.

import java.util.ArrayList;

public class heap<T extends Comparable<T>>
{
    private ArrayList<T> h;
    private int size;

    public heap()
    {
        h = new ArrayList<T>();
        h.add(null);
        size = 0;
    }

    public T getMin()
    {
        return h.get(1);
    }

    public T popMin()
    {
        T tmp = getMin();
        h.set(1, h.get(size));
        size--;
        sift(1);
        return tmp;
    }

    public void insert(T key)
    {
        h.add(key);
        percolate(++size);
    }

    public int getSize()
    {
        return this.size;
    }

    private int getLeftSon(int i)
    {
        return (i<<1<=size)? i<<1 : 0;
    }

    private int getRightSon(int i)
    { …
Run Code Online (Sandbox Code Playgroud)

java

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

标签 统计

c ×4

c++ ×3

java ×1

linux ×1

microbenchmark ×1