小编SIM*_*MEL的帖子

创建一个对象指针数组C++

我想创建一个包含指向许多对象的指针的数组,但我事先并不知道我将持有的对象数,这意味着我需要为数组动态分配内存.我想到了下一个代码:

ants = new *Ant[num_ants];
for (i=1;i<num_ants+1;i++)
{
    ants[i-1] = new Ant();
}
Run Code Online (Sandbox Code Playgroud)

where ants定义为Ant **ants;Ant是一个类.

它会起作用吗?

c++ new-operator

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

bash中的一行情况

在我的课程中,我被要求用bash写一个比较,只用一行而不用';'.我需要检查变量'fname'中的字符串是否以字母'C'结尾,如果是,则打印"匹配".没有别的命令.我怎么能一行呢?

bash

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

在Perl中的数组中进行二进制搜索

我有一个十六进制数字数组,我需要查看其他数字并检查它们是否出现在该数组中.现在我正在使用一个foreach遍历整个阵列的循环.有没有办法通过首先对数组进行排序,然后在其上实现二进制搜索来加快速度.

目前的代码:

sub is_bad_str{
  my ($str, @keys) = @_;
  my $flag = 0;
  my ($key, $hex_num);
        if ($str =~ m/14'h([0-9a-f][0-9a-f][0-9a-f][0-9a-f])/;){ #'# fixes bad highlighting
  $hex_num = $1;
      }
  if (defined $hex_num){
    foreach $key (@keys){
        if ($hex_num =~ /\Q$key\E/i){
            $flag = 1;
            last;
        }
    }
  }
  if (($flag == 0) && (defined $hex_num)){
    return 1;#Bad str
  }else{
    return 0;#Good str
      }
}
Run Code Online (Sandbox Code Playgroud)

perl binary-search

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

检查`malloc`是否在C中成功

我想使用malloc并分配内存并检查它是否成功.就像是:

if (!(new_list=(vlist)malloc(sizeof (var_list))))
  return -1;
Run Code Online (Sandbox Code Playgroud)

我该如何检查成功?

c malloc

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

用Java创建重复计时器提醒

我希望有一个类每2秒更改一次自己的私有变量.我知道,如果我做了类似的事情

import java.util.Timer;
//...
Timer timer;
//...
timer.schedule(new ChangeSomething(), 2000);
Run Code Online (Sandbox Code Playgroud)

它将ChangeSomething()在2秒后执行,有没有办法告诉它每2秒做一次,或者,如果我放进去ChangeSomething()

    timer.schedule(new ChangeSomething(), 2000);
Run Code Online (Sandbox Code Playgroud)

它会起作用吗?

另一方面,究竟做timer.cancel()了什么?

java timer

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

forelab循环使用Matlab中的字符串

我想创建一个迭代几个字符串的循环,但在Matlab中无法这样做.

有效的是:

for i=1:3
  if (i==1)
    b='cow';
  elseif (i==2)
    b='dog';
  else
    b='cat';
  end

  disp(b);
end
Run Code Online (Sandbox Code Playgroud)

结果是:

cow
dog
cat
Run Code Online (Sandbox Code Playgroud)

但我想要的是更优雅的东西,看起来像:

for i=['cow','dog','cat']
  disp (i);
end
Run Code Online (Sandbox Code Playgroud)

并给出相同的结果.

Matlab中有选项可以做到这一点吗?

加成:

我稍后需要使用单词作为字符串来使用而不仅仅是显示(disp仅作为示例).我试图在我的真实程序中使用单元格数组:

clear all;
close all;
clc;

global fp_a
global TEST_TYPE
global SHADE_METHODE

for fp_a=11:24
for shade={'full','fast'}
    SHADE_METHODE=shade(1);
    for test={'bunny','city'}
        TEST_MODE=test(1);
        fprintf ('fp_a:%d | test: %s | shade: %s',fp_a,TEST_TYPE,SHADE_METHODE);
        ray_tracing;
    end
end
end
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为值保持为单元格而不是字符串我收到错误消息:

??? 使用==> fprintf时出错没有为'cell'输入定义函数.

* - 我真的不需要fprintf我只是用它来检查值是否正确.

** - ray_tracing是我使用字符串值的代码

foreach matlab

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

通过透明表面计算阴影

在光线跟踪中,我想计算光线照射点的阴影.我向所有光源"绘制"线条并检查它们是否被物体阻挡.如果它们没有被阻挡,那么我根据它们的强度和"命中光线"与表面法线之间的程度来计算光照强度.

但如果光被部分透明的表面阻挡怎么办?然后光应该点亮这个点,但是它的强度和颜色会受到它通过的表面颜色的影响,并且为了计算我需要对光线通过的点进行光线追踪(实际上对于2个点,一个入口和一个出口),这将是非常昂贵的,并且可能几乎永远不会结束(我想在光源和表面的正确定位中,您可以将示踪剂置于几乎无限的每次击中循环).

是否有一种快速而好的方法来近似颜色,或者我应该将表面的颜色作为浅色和透明度作为强度?

graphics shader raytracing

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

是否可以像在C++中一样在C#中创建"私有"或"公共"块?

在C++中,可以通过隐私创建成员的"块":

private :
    int var1;
    char var2;
    ...

public :
    int var3;
    char var4;
    ...
Run Code Online (Sandbox Code Playgroud)

我试图在C#中找到相同的例子,但找不到一个.我试图在Visual Studio中编写这样的块,但是我收到了一个错误.

是否有类似的语法在C#中有效?

c#

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

`ofstream` 与 0 相比

我正在升级现有的旧代码以使用 VS 2019 *,在代码中我有以下函数在返回行失败:

int foo(const char *fn) const
{
    ofstream out(fn,ios::binary);
    if (out)
    {
        //...
    }
    return out!=0;
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

错误 C2678 二进制“!=”:未找到采用“std::ofstream”类型左侧操作数的运算符(或没有可接受的转换)

原始诗人的意图是什么,解决问题的最佳方法是什么?

*此代码在 VS 2010 上编译成功。

c++ ofstream visual-c++ implicit-conversion visual-studio-2019

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

解析逻辑表达式并将其转换为Perl中的树

我有复杂的逻辑表达式,如下所示:

((((!((cond1) || (cond2) || (cond3)) && (cond4))) && (cond5)) <= (((cond6) || (cond7) || (cond8)) || (cond9)))
Run Code Online (Sandbox Code Playgroud)

每行有几十个表达式.允许的逻辑迹象||,&&,!<=.<=意味着引导,就像a <= bb通向a.

我需要检查这些陈述并检查条件,因为其中一些不再有效.我希望能够将其解析为树,然后检查每个叶子(每个叶子都是条件),删除不需要的叶子并构建完整正确的表达式.

我知道树的每个节点都是由一对第一个括号和关闭它的括号定义的,但我不知道如何识别这些对以及如何识别它们之间的逻辑符号.

除了!两个表达之间的所有迹象.

perl logic parsing

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