小编Kar*_*oll的帖子

你可以使用函数本地类作为find_if的谓词吗?

是否可以使用本地类作为std :: find_if的谓词?

#include <algorithm>

struct Cont
{
    char* foo()
    {

        struct Query
        {
            Query(unsigned column)
                : m_column(column) {}

            bool operator()(char c)
            {
                return ...;
            }

            unsigned m_column;
        };

        char str[] = "MY LONG LONG LONG LONG LONG SEARCH STRING";

        return std::find_if(str, str+45, Query(1));
    }
};

int main()
{
    Cont c;
    c.foo();

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

我在gcc上遇到以下编译器错误:

error: no matching function for call to 'find_if(char [52], char*, Cont::foo()::Query)'
Run Code Online (Sandbox Code Playgroud)

c++

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

当我使用#in命令行参数时,为什么这个命令会失败?

我有以下命令:

ruby SaveAllDatabases.rb 192.168.0.15 1024 -r #0-D --non-interactive
Run Code Online (Sandbox Code Playgroud)

这是一个相当基本的命令,我用一些命令行参数运行ruby脚本.所述-r参数是一个正则表达式(#0-d).

如果我在Windows上运行此命令(使用标准的Windows命令提示符),一切都按预期运行,但如果我尝试在Linux上运行相同的命令(安装了相同版本的ruby).我收到以下错误:

/usr/lib/ruby/1.8/optparse.rb:451:in `parse': missing argument: -r (OptionParser::MissingArgument)
  from /usr/lib/ruby/1.8/optparse.rb:1295:in `parse_in_order'
  from /usr/lib/ruby/1.8/optparse.rb:1254:in `catch'
  from /usr/lib/ruby/1.8/optparse.rb:1254:in `parse_in_order'
  from /usr/lib/ruby/1.8/optparse.rb:1248:in `order!'
  from /usr/lib/ruby/1.8/optparse.rb:1339:in `permute!'
  from /usr/lib/ruby/1.8/optparse.rb:1360:in `parse!'
  from SaveAllDatabases.rb:256
Run Code Online (Sandbox Code Playgroud)

如果我从正则表达式中取出哈希/磅(#)符号,则命令运行正常.我已经完成了一个测试,并且命令行似乎没有在#进入argv数组之后传递任何内容.

为什么会这样,我该如何解决呢?

ruby bash command-line-arguments optionparser

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

从字符串中获取矩形边界

我想在注册表中保存我的窗口的边界,因为我使用代码:

dialogView.Save("WindowPosition", this.DesktopBounds.ToString());
Run Code Online (Sandbox Code Playgroud)

dialogView是我想要保存它们的路径.它保存了一切好的例子:

{X=54,Y=153,Width=723,Height=555}
Run Code Online (Sandbox Code Playgroud)

但是获得它们的最佳方法是什么,因为我可以从注册表中获取的类型可以是字符串示例:

dialogView.Load("WindowPosition",string.Empty,out position);
Run Code Online (Sandbox Code Playgroud)

但如何将字符串转换为矩形到init设置为窗口我不知道?有人可以建议吗?

.net c# string

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

如何将css设置为输入标记的特定属性

我有以下代码:

HTML

<div id=addQuesion">
  <li>
    <label>Text</label>
    <input type="text"/>
  </li>
  <li>
    <label>Try</label>
    <input type="button"/>
  </li>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

#addQuesion li label {
  position: relative;
  top: 10px;
  left: 10px;
  font-size: 25px;
  border: 1px black solid;
  padding-right: 50px;
}

#addQuesion li input {
  position: relative;
  top: 10px;
  left: 10px;
  width: 400px;
  font-size: 25px;
}
Run Code Online (Sandbox Code Playgroud)

确保两个输入的宽度为400px,但我想知道如何使每个输入(文本,按钮)具有不同的宽度.

我知道我可以使用这样的风格,<input style="..." />但我需要使用CSS.我也知道我可以<div>为每个输入使用不同的但我想把它们放在同一个div中.

html css

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

C strlen错误的答案

我无法弄清楚我的代码有什么问题

char* readString() {

    char* result;
    char line[SIZE];

    if(! fgets(line, sizeof(line), stdin))
        fprintf(stderr, "error\n");

    //printf 1
    printf("line length = %lu\n", strlen(line));

    result = line;

    return result;
}

int main() {

    char* myWord = readString();
    unsigned long len = (unsigned)strlen(myWord);

    //printf 2
    printf("myWord length = %lu\n", len);

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

如果printf1和printf2都没有注释,那么我得到真正的长度.例如,对于单词'hello',我有输出

line length = 6
myWord length = 6
Run Code Online (Sandbox Code Playgroud)

但是,如果我只评论printf1,对于同一个词'你好',我有

myWord length = 16
Run Code Online (Sandbox Code Playgroud)

c char strlen

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

删除动态数组

我必须编写一个程序,其中使用动态数组:

int size=1;
double* dyn_arr = new double[size];

int n=0; 
double sum=0.0;
while(std::cin >> dyn_arr[n]){
    sum = sum + dyn_arr[n++];
    if(n==size){
        size*=2;
        double* new_array = new double[size];
        std::copy(dyn_arr, dyn_arr + n, new_array);
        delete[] dyn_arr;
        dyn_arr = new_array;
    }
}
Run Code Online (Sandbox Code Playgroud)

dyn_arr = new_array后面的部分看不懂delete[] dyn_arrdyn_arr是数组第一个元素的指针dyn_arr,不是吗?如何删除指针/数组并再次写入dyn_arr = new_array

c++

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

fork()后杀死子进程PID是否能保证安全?

考虑以下情况:

  1. 我用来fork()从我的程序创建一个子进程
  2. 父进程接收的 PID 为1234
  3. 子进程然后调用execvp("myotherprogram", some_args);

myotherprogram预计会无限期地运行,直到收到 SIGTERM(或更高信号),但是,在某些情况下(例如丢失文件),它只会打印错误并中止。

当父进程收到事件时,它想再次杀死子进程,调用:

const int kill_result = kill(1234, SIGTERM);
Run Code Online (Sandbox Code Playgroud)

如果myotherprogram提前退出,会kill(1234, SIGTERM)是安全的,还是操作系统可以回收 PID,并且我可能会杀死一个随机进程?

c linux fork kill

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

仅使用else-if语句(C++)查找4个变量中的最小变量

我刚刚开始使用c ++.我想仅使用if-else语句找到4个变量中的最低者.到目前为止,这是我能想到的.反正有没有缩短这个?

float lowest;

if (assignment1<assignment2 && assignment1<assignment3 && assignment1<assignment4)
     assignment1 == lowest;           


else if (assignment2<assignment1 && assignment2<assignment3 && assignment2<assignment4)
         assignment2 == lowest;



else if (assignment3<assignment1 && assignment3<assignment2 && assignment3<assignment4)
         assignment3 == lowest;



else 
        assignment4 == lowest;
Run Code Online (Sandbox Code Playgroud)

c++

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

标签 统计

c++ ×3

c ×2

.net ×1

bash ×1

c# ×1

char ×1

command-line-arguments ×1

css ×1

fork ×1

html ×1

kill ×1

linux ×1

optionparser ×1

ruby ×1

string ×1

strlen ×1