小编Dan*_*iel的帖子

错误:预期声明

到目前为止,我在DecisionTree.h文件中的所有内容都是

namespace DecisionTree
{
     public static double Entropy(int pos, int neg);
}
Run Code Online (Sandbox Code Playgroud)

而Visual Studio已经突出public并强调了这一点

错误:预期声明.

我错过了什么?

c++ compiler-errors access-specifier

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

如何为同一个函数提供可选参数AND关键字参数?

我正在尝试编写一个可以使用可选和关键字参数的Lisp函数.功能开始了

(defun max-min (v &optional max min &keyword (start 0) (end nil))
Run Code Online (Sandbox Code Playgroud)

当我尝试使用关键字参数而不是可选的参数调用函数时,我收到错误.我想做的是

(max-min #(1 2 3 4) :start 1 :end 2)
Run Code Online (Sandbox Code Playgroud)

我收到了错误 Error: :START' is not of the expected type REAL'

我认为这是因为它试图绑定:startmax.我怎样才能让它发挥作用?谢谢.

lisp parameters keyword

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

当我不想要它时,Lisp宏评估表达式

我试图在lisp中编写一个宏,它返回传递给它的第n个表达式,并且只计算该表达式.例如:

(let ((n 2))
  (nth-expr n (/ 1 0) (+ 1 2) (/ 1 0)))
Run Code Online (Sandbox Code Playgroud)

应该返回3.我得到除以0的错误.我的宏定义如下:

(defmacro nth-expr (n &rest expressions)
  (let ((i (gensym))
        (expr (gensym)))
    `(do ((,i 1 (1+ ,i))
          (,expr ,expressions (cdr ,expr)))
         ((= ,i ,n) (car ,expr)))))
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?谢谢.

编辑:

感谢@Vsevolod Dyomkin帮助我完成上述部分.现在还有一个问题.当我尝试做的时候

(let ((n 3) (x "win") (y "lose"))
  (nth-expr n (princ x) (princ x) (princ y) (princ x)))
Run Code Online (Sandbox Code Playgroud)

我收到了错误Error: Attempt to take the value of the unbound variable 'Y'.

我的更新代码如下所示:

(defmacro nth-expr (n &rest expressions) …
Run Code Online (Sandbox Code Playgroud)

lisp macros

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

无法设置指定的COM单元状态

看来我对多线程应用程序真的不太好.我试图打开一个FolderBrowserDialog,但我得到一个例外告诉我:

Current thread must be set to single thread apartment (STA) mode before OLE calls can be made.

我已经STAThreadAttribute在我的Main方法中设置了,但是从我的主线程以外的线程调用FolderBrowserDialog.我试过了

Thread.CurrentThread.SetApartmentState(ApartmentState.STA);
Run Code Online (Sandbox Code Playgroud)

但这给了例外Failed to set the specified COM apartment state.

我有一个临时修复,在STA模式下创建一个新线程并打开FolderBrowserDialog,但我想有一个更整洁的解决方案.是什么原因导致无法将公寓状态设置为STA?

c# multithreading folderbrowserdialog

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

如何在eclipse中使用xstream进行xml序列化

我在查找如何在eclipse中下载和使用xstream时遇到了一些麻烦.当我从网站下载二进制发行版时,我得到一个zip文件.我应该在哪里提取它,我该如何使用它?

编辑:

好的,我已经将它添加到我的构建路径中,但是现在当我尝试使用XStream序列化ArrayList<Earmark>where Earmark我是已定义的类时,我收到以下错误消息:

Exception in thread "main" java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserException
at com.thoughtworks.xstream.XStream.<init>(XStream.java:334)
at examples.TestEarmarkExtractor.SerializeEarmarks(TestEarmarkExtractor.java:19)
at examples.TestEarmarkExtractor.main(TestEarmarkExtractor.java:48)
Caused by: java.lang.ClassNotFoundException: org.xmlpull.v1.XmlPullParserException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
Run Code Online (Sandbox Code Playgroud)

更新:尝试序列化之前发生错误.它发生在线上

XStream xs = new XStream();
Run Code Online (Sandbox Code Playgroud)

java xml eclipse xstream

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

包括两个.c文件中的头文件

该程序应该保存几个点,并根据要求将它们放出.该程序包含一个.h文件和两个.c文件.这是我得到的编译器信息:

prog.c:46:25:致命错误:pointstack.h:没有这样的文件或目录#include"pointstack.h"

我错过了什么?

//File: pointStack.h - Headerfile 

#ifndef POINTSTACK_H
#define POINTSTACK_H


#include <stdio.h>
#include <stdlib.h>


//structs

//struct for coordinates

struct point
{
    float rX;
    float rY;
    float rZ;
};
typedef struct point POINT;

struct stackPoint
{
    POINT p;
    struct stackPoint *next;
};
typedef struct stackPoint STACK_POINT;
typedef STACK_POINT *STACK_POINT_PTR;

//functions


void push(POINT pushPoint);
POINT pop();
int isEmpty();
void printStackElement(POINT aPoint);

#endif
Run Code Online (Sandbox Code Playgroud)
//File: pointstack.c - functions of stack program

#include "pointstack.h" 


//global variable

STACK_POINT_PTR stackTop = NULL;

void push(POINT pushPoint) 
{ …
Run Code Online (Sandbox Code Playgroud)

c

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

Google Mock函数更改参数值

我正在尝试模拟一些代码,这些代码通过写入作为参数传递给函数的引用之一来返回信息。有没有办法模拟这种行为的好方法,这样我就可以让测试代码确定将什么值写入该变量?

c++ googlemock

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

迭代my_dict.keys()并修改字典中的值会使迭代器失效吗?

我的例子是这样的

for my_key in my_dict.keys():
    my_dict[my_key].mutate()
Run Code Online (Sandbox Code Playgroud)

是否定义了上述代码的行为(假设my_dict是一个字典并且mutate是一个改变其对象的方法)?我担心的是,改变字典中的值可能会使字典键上的迭代器无效.

在另一方面,Python文档中的keys方法表明,它返回一个列表.如果是这样,我应该(我认为)能够改变字典的值并且仍然安全地访问字典的每个元素,只要我不改变,添加或删除任何键.那是对的吗?

python iterator undefined-behavior

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

在Racket中取反函数

我正在尝试编写一个更高阶的Racket函数,该函数接受一个变量的一阶函数并返回其反函数.我知道它必须从这样的事情开始:

(let [(inverse (lambda (f)
                 (lambda (y)
                   ... )))])

我想这是因为inverse必须返回一个函数,该函数的功能y,并返回x这样(= (f x) y).换句话说,逆的契约是这样的:

; inverse : (number? -> number?) -> (number? -> number?)
Run Code Online (Sandbox Code Playgroud)

我只是难过想弄清楚elipses在哪里?

编辑:为了回应人们说这是不可能的,我愿意接受一个反函数,当给定y返回一个可能的x.在回复关于没有反转功能的评论时,请注意我所拥有的合同f.它是一个(number? -> number?)映射,因此具有逆.

lambda scheme functional-programming racket

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

C中十六进制字符的格式说明符

sprintf在C中是否有一个格式说明符,它将a映射char到十六进制的方式与%x映射int到十六进制的方式相同?

c hex format-specifiers

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