小编Dev*_*017的帖子

在bash中检查命令行标志的正确方法

在脚本中间,我想检查命令行上是否传递了给定的标志.以下是我想要的,但看起来很难看:

if echo $* | grep -e "--flag" -q
then
  echo ">>>> Running with flag"
else
  echo ">>>> Running without flag"
fi
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

注:我明确地希望列出一个开关/ getopt的所有标志.(在这种情况下,任何这样的东西都会变成完整脚本的一半或更多.而且if的主体也只是设置了一组变量)

bash flags command-line

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

与子目录CMake

我正在尝试使用CMake设置我的项目以正确编译.

我的目录如下所示:

root
 |- bin
 |   |- // Where I want to build CMake from - using 'cmake ..'
 |- build
 |   |-
 |- include
 |   |- database
 |   |    |- database.h
 |- src
     |- database
     |    |- database.cpp
     |- main
          |- main.cpp
Run Code Online (Sandbox Code Playgroud)

随着我的项目变得越来越大,我的子目录肯定会增长,并认为CMake可能是个好主意.目前我只能让CMake在我的src /中没有子目录.但是,我确实希望这个项目成长为许多子目录.

我需要在.cpp文件的每个目录中使用多个CMakeLists.txt吗?谁能指出我正确的方向?

谢谢!

c++ directory build cmake

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

c ++:在if中分配变量

我正在研究一些函数,这个函数,根据一些参数,可能需要一个Model对象.Model对象非常大,我不想在不需要时分配一个.从本质上讲,这就是我想要做的事情:

Model *myModel;
if (modelIsNeeded(arguments)) {
    myModel = &Model(arguments);
}

//processing ...
Run Code Online (Sandbox Code Playgroud)

我有错误 error: taking address of temporary [-fpermissive]

你看到任何解决方法吗?做我想做的事的C++方式是什么?

c++ pointers if-statement allocation

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

通过读取用户的值创建10个整数的输入数组

我正在尝试以下代码:

int main() {
    int x[10] ;
    int a[] = {1,2,3,4,5} ;
    int n ;
    int b[n] ;
    //int c[] ; gives compilation error

    cout<<sizeof(x)<<endl ; //prints 40
    cout<<sizeof(a)<<endl ; //prints 20
    cout<<sizeof(b)<<endl ; //prints 4
}
Run Code Online (Sandbox Code Playgroud)

现在我的问题是我定义时到底发生了什么b.我试图阅读类似问题的答案,但我没有得到满意的答复.因为数组是静态创建的,所以在声明它们时必须给出大小.那为什么声明b有效.是否sizeof(b)表明这只是作为一个int pointer

c++ arrays initialization sizeof

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

在C ++中,对于unordered_map / set是否有更快的哈希函数?

默认函数来自std :: hash。我想知道是否有更好的哈希函数可以节省计算时间?用于整数键和字符串键。

我尝试使用Google的City Hash的整数和字符串键,但其性能比std :: hash差一些。

c++ hash unordered-map std unordered-set

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