小编Der*_*rek的帖子

JAXB能否以逗号分隔值输出ArrayList?

我有类似的东西

@XmlElementWrapper(name="Mylist")
List<Items> myItems = new ArrayList<Items>()
Run Code Online (Sandbox Code Playgroud)

那就像是

<Mylist>
   <myItems>item 1</myItems>
   <myItems>item 2</myItems>
   <myItems>item 3</myItems>
</Mylist>
Run Code Online (Sandbox Code Playgroud)

是否有可能使这更像是

<Mylist>
   <myItems>item 1, item 2, item 3</myItems>
</Mylist>
Run Code Online (Sandbox Code Playgroud)

既然我追求的数据都是文本的呢?

java xml jaxb marshalling

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

返回sql中属性共有的值的总和?

我有一些看起来像这样的行:

name  value
------------
Name  1
Name  2.8
Name  8
Run Code Online (Sandbox Code Playgroud)

我希望我的回归是一排:

name  value
------------
Name  11.8
Run Code Online (Sandbox Code Playgroud)

我该如何强制这样呢?11.8作为那里价值的总和.

sql database aggregate-functions

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

从C++中的函数返回2d数组

我有一个声明如下的函数:

unsigned char** Classifier::classify(){
      //...
    unsigned char **chars = new unsigned char *[H];
for(int i = 0; i < H; i++)
    chars[i] = new unsigned char[W*3];

//...

return &chars;
//note: when this is "return chars;" I get the following:  cannot convert ‘unsigned char*’ to ‘unsigned char**’ in return
Run Code Online (Sandbox Code Playgroud)

这给了我警告:

Classifier.cpp: In member function ‘unsigned char** Classifier::classify()’:
Classifier.cpp:124: warning: address of local variable ‘chars’ returned
Run Code Online (Sandbox Code Playgroud)

这可以忽略吗?基本上,我的问题是如何返回对函数中定义的数组的引用?

我希望能够做到

unsigned char** someData = classify();
Run Code Online (Sandbox Code Playgroud)

c c++ arrays multidimensional-array

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

如何使用SWIG生成的接口从Java将字符串传递给C++函数

我有一堆C++函数,它们将C std:string作为函数参数.

我想将java字符串传递给那些函数.我在Java和C++之间生成了一个SWIG JNI接口.我可以看到no-args构造函数很好,但如果我尝试使用构造函数中的String参数编译我的java,我会得到"找不到符号",我认为这是因为类构造函数的方式有趣被定义了.

你如何解决这个问题?类型图是答案吗?如果是这样 - 你从哪里开始?

c++ java swig

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

如何使用CUFFT的批处理模式?

我试图弄清楚如何使用 CUFFT 库中提供的批处理模式。

我基本上有一个宽 5300 像素、高 3500 像素的图像。目前,这意味着我正在使用 FFTW 对这 5300 个元素运行 3500 个 1D FFT。

这是以批处理模式运行 CUFFT 库的一个很好的候选问题吗?必须如何设置数据才能解决此问题?

谢谢

c++ cuda fft fftw

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

将表示2D数组的指针传递给C++中的函数

http://www.neilstuff.com/guide_to_cpp/notes/Multi%20Dimension%20Arrays%20and%20Pointer%20Pointers.htm

根据这个网站,我应该能够使用以下代码:

double stuff[3][3];
double **p_stuff;
p_stuff = stuff;
Run Code Online (Sandbox Code Playgroud)

但我得到的投诉是转让不允许转让.

难道我做错了什么?

我有一个extern"C"类型的函数,我想通过这个双重的东西[3] [3]来.所以我想我需要把它作为指针,对吧?

c++ arrays

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

从QImage获取原始数据

我有一个我用pixmap构建的QImage,如下所示:

QPixmap fullPmap = topItem->pixmap();
fullPmap = fullPmap.copy(isec.toRect());
QImage chip = fullPmap.toImage();
Run Code Online (Sandbox Code Playgroud)

这基本上与屏幕上的矩形相交以将图像裁剪为切削尺寸.

我现在需要从芯片中获取表示该数据的字符数组.

我怎样才能做到这一点?

我试过这样的事情:

  unsigned char * data = chip.bits();
Run Code Online (Sandbox Code Playgroud)

当我显示"数据"时,我得到一个完全失真的图像,没有像我的实际芯片那样.

如果重要的话,fullPmap是一个RGB图像.我有一些代码,我用它来将其转换为灰度:

QRgb col;
int gray;
for (int i = 0; i < chip.width(); ++i)
{
    for (int j = 0; j < chip.height(); ++j)
    {
        col = chip.pixel(i, j);
        gray = qGray(col);
        chip.setPixel(i, j, qRgb(gray, gray, gray));
    }
}
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢,但这似乎是做这种事情最简单的方法.

显示从bits()返回的数据如下所示:

imwidth = chip.width();
imheight = chip.height();
QImage *qi = new QImage(imwidth, imheight, QImage::Format_RGB32);
//  #pragma omp …
Run Code Online (Sandbox Code Playgroud)

c++ qt qt4

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

pthread_mutex_init vs sem_init(非共享)

我正在考虑更改一些我想在linux,unix和OSX上运行的代码.代码中有一些调用sem_init,但pshared值设置为零.我在Rochkind关于unix编程的书中做了一些阅读,他基本上说没有共享的sem_init与pthread_mutex_init相同,因为它以内存中的二进制方式运行.

问题是 - 我可以安全地将这些sem_init更改为pthread_mutex_init,还是使用sem_open来获取此代码的更便携版本?

OSX不支持未命名的信号量,但我猜其他两个信号量.我真的不想要一个单独的编译标志#ifdef(__APPLE__)或其他任何东西.

谢谢

c unix macos semaphore pthreads

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

如何在java中解析单词创建的特殊字符

我试图在java中解析一些word文档.一些值是像日期范围的东西,而不是像Startdate那样出现 - endDate我得到一些像这样的时髦字符

StartDate ?Çô EndDate
Run Code Online (Sandbox Code Playgroud)

这是单词放入特殊字符的地方.你可以搜索这些字符并用常规字符替换它们 - 或者字符串中的东西,这样我就可以对" - "进行标记,那个字符是什么 - ascii?unicode还是什么?

编辑添加一些代码:

 String projDateString = "08/2010 ?Çô Present"
                Charset charset = Charset.forName("Cp1252");
                CharsetDecoder decoder = charset.newDecoder();
                ByteBuffer buf = ByteBuffer.wrap(projDateString.getBytes("Cp1252"));
                CharBuffer cbuf = decoder.decode(buf); 
                String s = cbuf.toString();
                println ("S: " + s)

                println("projDatestring: " + projDateString)
Run Code Online (Sandbox Code Playgroud)

输出以下内容:

S: 08/2010 ?Çô Present
projDatestring: 08/2010 ?Çô Present
Run Code Online (Sandbox Code Playgroud)

另外,使用上面相同的projDateString,如果我这样做:

projDateString.replaceAll("\u0096", "\u2013");
projDateString.replaceAll("\u0097", "\u2014");
Run Code Online (Sandbox Code Playgroud)

然后打印出projDateString,它仍然打印为

projDatestring: 08/2010 ?Çô Present
Run Code Online (Sandbox Code Playgroud)

java regex parsing

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

无法调试 lex.yy.cc 文件

我创建了一个 lex 文件 test.l 并从中创建了 lex.yy.c,然后我用 gcc -g 标志编译

我正在链接它,并且在编译调用 yylex() 的其余代码时没有问题,但是,在 GDB 中,我似乎无法深入调用 yylex()。

我究竟做错了什么?我在 yylex() 方法本身中放置了断点,这导致 gdb 在我调用 yylex() 时停止,但从未在函数内部。

我是否需要使用调试符号或其他东西编译 -l 库?

我知道它正在运行,因为我用 -d 创建了我的 lex.yy.c 文件,所以我看到了接受令牌等的输出。

谢谢

c lex

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