小编jpa*_*cek的帖子

在Scala中创建参数化图形类型

我想创建一个用于表示图形的泛型类型层次结构.特别是,我想要有Graph和Node类,我希望每种Graph类型都有相应的Node类型,如果我创建一个用于操作Graphs的泛型函数,我希望这个函数使用实际的Node类型.我试过的一个例子

trait GNode[Graph]
{
 ... functions to get edges from this vertex, etc. ...
}

trait Graph
{
  type Node <: GNode[Graph]
}

def dfs[G <: Graph](g : G, nodeAction : G#Node => Unit) = ... code ...
Run Code Online (Sandbox Code Playgroud)

但是这没用,因为当我这样做的时候

class ConcreteGraph extends Graph
{
  class Node extends GNode[ConcreteGraph] { ... }
}
Run Code Online (Sandbox Code Playgroud)

dfs函数不接受类型ConcreteGraph#Node=>Unitas 的函数nodeAction,但只接受AnyRef=>UnitGNode[ConcreteGraph]=>Unit.

更清楚的是,如果我用C++做的话,我会做类似的事情

template <class T> struct graph_traits;
template <> struct graph_traits<concrete_graph> 
{ typedef concrete_graph::node node_type; }

template <class G> …
Run Code Online (Sandbox Code Playgroud)

generics types scala graph

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

C中的文件描述符分配

在C中创建套接字或打开/创建文件时,分配给套接字/文件的文件描述符是否保证是可用的最低值描述符?如果有的话,C规范在这方面对文件描述符分配有何看法?

c file-descriptor

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

如何忽略git中的文件或目录,无论是跟踪,未跟踪,还是部分提交

我想完全忽略git存储库的一部分.该目录当前在存储库中被跟踪,我想确保这一点

  • 每当有人在上游存储库中更改其内容时,即使我的副本也被更改,我也不会遇到任何合并冲突.
  • 每当我更改其内容时,我所做的任何提交都不会反映这些更改

我并不特别关心实际内容.

在构建期间自动生成的文件会出现问题.不幸的是,有人碰巧将它们提交到存储库,但是当它们在不同的机器上使用而不是它们的创建者时,它们会因为不同的路径等而导致构建错误,从而导致讨厌的合并冲突

AFAIK .gitignore不会用于此目的,因为它仅适用于未跟踪的文件.

git ignore gitignore

4
推荐指数
2
解决办法
9166
查看次数

Int Array Length C++

我必须在我的程序中使用动态长度int数组,并希望能够在我的代码中的不同点获取其中的对象数.我对C++并不熟悉,但这就是我所拥有的.为什么它没给我合适的长度?谢谢.

<#include <iostream>
Using Namespace std;
int length(int*);


void main()
{
  int temp[0];
  temp[0] = 7;
  temp [1] = 10;
  temp[2] = '\0';

  cout << length(temp) << endl;
}

int length(int* temp)
{
    int i = 0;
    int count = 0;

    while (*temp + i != '\0')
    {
          count++;
          i++;
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

目前它只是进入无限循环; _;

c++ arrays

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

如何从Perl中的coderef获取语法树?

我想在Perl中检查和操作任意Perl程序的代码(由coderefs获取).有没有工具/模块/库?类似于B :: Concise的东西,除了B :: Concise在输出上打印代码,但我想以编程方式检查它.

我想像这样使用它.给定一个coderef F,例如.有10个参数:

$ret = &$F(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10);
Run Code Online (Sandbox Code Playgroud)

我想创建一个函数F1,st.

&$F(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10) == 
  &$F1(x1, x2, x3, x4, x5, x6, x7, x8, x9, x10)*
  &$C(x2, x3, x4, x5, x6, x7, x8, x9, x10)
Run Code Online (Sandbox Code Playgroud)

那就是把它"分解"成两部分,第二部分不依赖于x1第一部分,第一部分尽可能简单(我假设它F是一个巨大的产品).

我想要的应用是Metropolis采样算法的优化 - 假设我正在对分布进行采样p(x1 | x2 = X1, x3 = X3, ...) = f(x1, x2, x3, ...).算法本身是不变的.乘法常数因子和其他变量不会通过算法改变,因此不依赖于x1 …

perl code-analysis abstract-syntax-tree bytecode-manipulation

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

包含unordered_map作为成员的结构的sizeof()

我有一个以下类型的结构

struct Node
    {
        int  word;       
        int   count;       
        unordered_map<Type, Node*> map;       

    }node;   
Run Code Online (Sandbox Code Playgroud)

假设sizeof(node)在C++中为您提供正确的节点大小,这是否安全?我确信结构中会有填充,但sizeof仍会考虑unordered_map的正确大小.

c++ unordered-map structure sizeof

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

如果从shell脚本执行,则不会运行cp命令

我有非常简单的shell脚本

#!/bin/bash    
cp -rf /var/www/ksite/app2/* /var/www/ksite/app
echo "----"
echo "done"
Run Code Online (Sandbox Code Playgroud)

但似乎cp命令失败

如果我执行

cp -rf /var/www/ksite/app2/* /var/www/ksite/app
Run Code Online (Sandbox Code Playgroud)

从终端一切正常.有人能告诉我如何在shell脚本中包含cp吗?

谢谢

linux bash shell cp

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

奇怪的双指针null检查

这是对函数中传递的DOUBLE指针参数的有效空检查

if (!pdblValue) return E_POINTER;
Run Code Online (Sandbox Code Playgroud)

c++ com atl

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

使用free()时程序发生奇怪的变化

我有点困惑.

我正在编写一个非常简单的文件系统,它基本上是: -
从一个文件中
读取一个数据块 - 从该块中
获取一个哈希
- 搜索该哈希的链接列表- 如果找不到,请附加
- 如果找到,则不执行任何操作

问题:
当我不使用free时,程序要慢得多(可能是泄漏?).

当我使用free时,程序运行得更快,块大小为128和256,但是当我尝试512(插入时崩溃)时崩溃.我在视觉工作室工作,它只是崩溃了.我得到"VS停止工作......"的消息,没有提供任何见解.

最重要的是,当我使用free而不使用它时,我会得到很多不同的结果.

任何帮助将非常感谢.

好吧,一些代码(缩写):

struct list_el
{
    char* hash;
    struct list_el* next;
    struct list_el* prev;
};  
typedef struct list_el item;

item* head, *tail;

void ins(item* ins) 
{
item* iterator = (item*)malloc(sizeof(item));
if(iterator == NULL)
{
    printf("out of memory\n");
    exit(1);
}
else if(head != NULL)
{
    iterator = head;
    while(iterator != NULL)
    {
        if(strcmp(iterator->hash, ins->hash) == 0)
        {
            //free(iterator); (problem line)
            matches++;
            return;
        }
        else if(iterator->next …
Run Code Online (Sandbox Code Playgroud)

c

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

模板运算符[] =

作为练习我正在制作模板Array类,我想执行此操作:

Array<int> a[5];

a[4] = 2;
Run Code Online (Sandbox Code Playgroud)

我怎么写这样的东西?
我试过了:

template<class T> class Array{
...
T operator[(const int loc)]=(const T temp);
Run Code Online (Sandbox Code Playgroud)

c++ templates class operator-keyword

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

开发Perl和测试Perl

我在Perl模块IO :: Socket :: SSL中发现了一个错误,我可以修复它,但是,我担心测试修复.我从Debian下载了源代码包(因为我打算生成一个Debian软件包或补丁),然后查看了该t/目录.在那里,我发现测试覆盖率最多是稀缺的.

所以我想问一下是否有一个众所周知的程序来测试这段代码.是否有更好的覆盖范围的另一个测试(不在分发中)?另外,我想使用不在核心发行版(Test :: LeakTrace)中的测试模块进行测试.那可以吗?

testing perl

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