小编dlm*_*tei的帖子

const char*const与const char*?

我正在运行一些示例程序来重新熟悉C++,我遇到了以下问题.首先,这是示例代码:

void print_string(const char * the_string)
{
    cout << the_string << endl;
}

int main () {
    print_string("What's up?");
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,print_string的参数可能已经改为const char * const the_string.哪个更合适呢?

我理解不同之处在于,一个是指向常量字符的指针,而另一个是指向常量字符的常量指针.但为什么这两个都有效呢?什么时候相关?

c c++

101
推荐指数
5
解决办法
8万
查看次数

cp -r没有隐藏文件

我有两个目录,一个是空的.

第一个目录有许多带隐藏文件的子目录.当我cp -r从第一个目录到第二个目录的内容时,隐藏的文件也会被复制.逃避它们的任何解决方案?

linux bash cp

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

Vim,如何重新加载语法高亮

当我在Vim中执行Rmodel,Rcontroller和其他人时.我只看到白色文字.但是,当我去到下一个缓冲区,然后回去:bn:bl,颜色都在工作.

这是我的.vim文件夹 https://github.com/regedarek/dotvim

vim syntax-highlighting rails.vim

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

vim重新映射hjkl

我正在尝试将这封信映射hjkljkl我的.vimrc文件中,以便我可以按照他们在键盘上的方式使用我的手指,同时在vim中书写.

问题是,当我将k映射到l时,它会跳转到l to;.所以k变得和; 所有这些都发生了相同的过程.

所以所有的密钥都成为一个,因为它们互相复制.

我怎么能防止这种情况?

mapping vim

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

pair <int,int>对作为unordered_map问题的关键

我的代码:

 typedef pair<int,int> Pair
  tr1::unordered_map<Pair,bool> h;
  h.insert(make_pair(Pair(0,0),true));
Run Code Online (Sandbox Code Playgroud)

Erorr

 undefined reference to `std::tr1::hash<std::pair<int, int> >::operator()(std::pair<int, int>) const'
Run Code Online (Sandbox Code Playgroud)

我需要修理什么?

谢谢

c++ unordered-map std-pair

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

SIGKILL 和 SIGSTOP 信号无法被捕获、阻止或忽略,为什么?

我想知道为什么这两个信号在一个进程中不能被捕获、阻止或忽略?可以使用 signal() 更改其余信号的操作。这两个信号和其余信号有什么区别?

c

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

用于循环索引类型演绎的最佳实践

比方说,我有一个c提供size()方法的类型的容器,我想循环遍历这个容器,同时跟踪每个项目的索引:

for (/*TODO*/ i = 0; i < c.size(); i++) {...}
Run Code Online (Sandbox Code Playgroud)

在后C++ 11世界中,自动类型演绎很好地解决了很多问题.我们应该用什么来取代TODO上述?对我来说唯一正确的,无论类型size()是什么,如下:

for (decltype(c.size()) i = 0; i < c.size(); i++) {...}
Run Code Online (Sandbox Code Playgroud)

但这看起来过于冗长,在我看来,这无助于可读性.

另一种解决方案可能是:

for (auto end = c.size(), i = 0; i < end; i++) {...}
Run Code Online (Sandbox Code Playgroud)

但这也无助于可读性,当然,它与原始片段没有相同的语义.

所以,我的问题是:只给出索引限制的类型,推断循环索引变量类型的最佳方法是什么.

c++ c++11 type-deduction

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

C++标准库 - std :: setenv vs setenv

我有一个简单的调用std::setenv,它在我的Linux发行版下工作正常gcc.但是,clang在我的Mac OS X上使用时,出现以下错误.

error: no member named 'setenv' in namespace 'std'; did you mean simply 'setenv'?
std::setenv(name.c_str(), value.c_str(), true);
Run Code Online (Sandbox Code Playgroud)

我敢肯定,我已经阅读了C++ 11 setenv中名称空间的一部分std,但现在我不确定.

问题:应该使用setenv还是std::setenv使用,为什么会这样?

c++ environment-variables c++11

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

在bash -c中设置变量

我尝试设置从接口IP地址获取的变量,ifconfig然后再读取它.但是当我执行一个echo命令时,变量仍然是空的.请看我的代码:

/usr/bin/bash -c "HOST_IPS=$(/usr/bin/ifconfig | /usr/bin/awk 'BEGIN {cnt=0} {if($0 ~ /inet / && cnt==1) {print $2} cnt++}'); echo $HOST_IPS"
Run Code Online (Sandbox Code Playgroud)

但/ bin/echo使用相同的命令工作正常:

/usr/bin/bash -c "echo $(/usr/bin/ifconfig | /usr/bin/awk 'BEGIN {cnt=0} {if($0 ~ /inet / && cnt==1) {print $2} cnt++}')"
Run Code Online (Sandbox Code Playgroud)

linux bash awk ifconfig

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

使用C++ Catch测试浮点std :: vector

在Catch C++单元测试框架中是否有可能比较基于浮点类型的std :: vectors?我知道我可以比较两个容器和每个元素的大小(使用约),但这很麻烦.

积分类型向量的比较适当地工作.

现在,我必须使用这样的结构

REQUIRE(computed.size() == expected.size());
for (size_t i = 0; i < computed.size(); ++i)
    REQUIRE(computed[i] == Approx(expected[i]));
Run Code Online (Sandbox Code Playgroud)

但我想使用一个衬垫(它适用于整体类型):

REQUIRE(computed == expected);
Run Code Online (Sandbox Code Playgroud)

c++ vector c++11 catch-unit-test

8
推荐指数
2
解决办法
860
查看次数