小编mal*_*lat的帖子

std :: make_pair:无法将'ch'(类型'char')转换为'char &&'类型

以下代码有什么问题:

#include <ctime>
#include <vector>
#include <utility>
#include <algorithm>
#include <iostream>

int main()
{
    std::vector< std::pair< char, unsigned > > vec;

    for( unsigned i = 0; i < 100; ++i )
    {
        char ch = 0;
        unsigned number = 0;

        do {
            ch = i;
            number = i;

        } while( std::find( vec.begin(), vec.end(), std::make_pair< char, unsigned >( ch, number ) ) != vec.end() );

        std::cout << ch << number << '\n';

        vec.push_back( std::make_pair< char, unsigned >( ch, number ) ); …
Run Code Online (Sandbox Code Playgroud)

c++ c++11

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

测试远程DICOM Q/R服务器的黑盒子

我想知道是否有人试图解决以下问题.我需要在远程DICOM Q/R服务器上执行一系列测试.这将允许一些简单的DICOM一致性声明检查.

作为测试套件的实现细节,我运行以下(DCMTK样式命令):

$ findscu --study --cancel 1 --key 0020,0010=* --key 8,52=STUDY --aetitle MINE --call THEIR dicom.example.com 11112 
Run Code Online (Sandbox Code Playgroud)

这里的目标是找到一个有效的StudyID(稍后我将使用该StudyID执行较低的密钥级别C-FIND,以及一些相关的C-MOVE查询).当然,如果我可以上传我自己的数据集并尝试将其取回,那将会容易得多,但我无法在临床环境中对付正在运行的PACS.我需要用最少量的查询来定义如何找到有效的StudyID.

但是我担心某些DICOM实现可能会禁止policies查询整个数据库.

所以我想知道是否有人编写了这些列表policies,并且可能描述了一种从具有最少数量的C-FIND查询的远程服务器检索有效StudyID的方法.

dicom dcmtk

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

计算平均网格大小

我试图计算以下一组点的平均单元大小,如图所示: 格.图片是使用gnuplot生成的:

gnuplot> plot "debug.dat" using 1:2
Run Code Online (Sandbox Code Playgroud)

这些点几乎在矩形网格上对齐,但不完全对齐.沿着X或Y似乎存在10-15%的偏差(抖动?).如何有效地计算瓦片中的适当分区,使得每个瓦片实际上只有一个点,大小将表示为(tilex) ,tiley).我使用虚拟这个词,因为10-15%的偏差可能已经在另一个相邻的瓷砖中移动了一个点.

仅供参考,我手动排序(希望正确)并提取前10个点:

 -133920,33480
 -132480,33476
 -131044,33472
 -129602,33467
 -128162,33463
 -139679,34576
 -138239,34572
 -136799,34568
 -135359,34564
 -133925,34562
Run Code Online (Sandbox Code Playgroud)

只是为了澄清,按照上面描述的有效瓷砖将是(1435,1060),但我真的在寻找一种快速自动化的方式.

statistics graphics computational-geometry

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

向jar文件添加索引,引用外部jar文件

我正在尝试在jar文件上创建一个简单的索引.然而它失败了:

$ jar -i /tmp/vtk-dicom/bin/lib/vtkdicom.jar
java.io.FileNotFoundException: /tmp/vtk-dicom/bin/lib/vtk.jar (No such file or directory)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:215)
    at java.util.zip.ZipFile.<init>(ZipFile.java:145)
    at java.util.jar.JarFile.<init>(JarFile.java:154)
    at java.util.jar.JarFile.<init>(JarFile.java:91)
    at sun.tools.jar.Main.getJarPath(Main.java:1052)
    at sun.tools.jar.Main.getJarPath(Main.java:1068)
    at sun.tools.jar.Main.genIndex(Main.java:1084)
    at sun.tools.jar.Main.run(Main.java:269)
    at sun.tools.jar.Main.main(Main.java:1177)
Run Code Online (Sandbox Code Playgroud)

明显的解决方法很简单:

$ cp /usr/share/java/vtk.jar /tmp/vtk-dicom/bin/lib/
Run Code Online (Sandbox Code Playgroud)

然而,它很丑陋且容易出错.有没有其他方法我可以告诉jar -i在哪里搜索不同的vtk.jar位置?我需要一个可在Windows/Linux/MacOSX上运行的便携式解决方案.

有关信息,清单设置为:

$ cat ./Source/java/manifest.txt
Class-Path: vtk.jar
Run Code Online (Sandbox Code Playgroud)

有关信息,如果我将其更改为:

$ cat ./Source/java/manifest.txt
Class-Path: /usr/share/java/vtk.jar
Run Code Online (Sandbox Code Playgroud)

它给出了一个稍微不同的错误:

$ jar -i /tmp/vtk-dicom/bin/lib/vtkdicom.jar
java.io.FileNotFoundException: /tmp/vtk-dicom/bin/lib/usr/share/java/vtk.jar (No such file or directory)
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:215)
    at java.util.zip.ZipFile.<init>(ZipFile.java:145)
    at …
Run Code Online (Sandbox Code Playgroud)

java jar

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

dladdr:指向函数的指针与指向对象的指针

希望这是一个简单的C++问题(不是语言律师问题).

如何dladdr在C++中使用GNU扩展?通常会在C中写下以下内容:

#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
#include <dlfcn.h>

static void where_am_i() {}

int main()
{
  Dl_info info;
  dladdr( (void*)&where_am_i, &info );

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

但是使用clang可以看到演员表可能无效:

$ clang --version
Debian clang version 3.6.2-3 (tags/RELEASE_362/final) (based on LLVM 3.6.2)
Target: x86_64-pc-linux-gnu
Thread model: posix
$ clang -Wpedantic -o foo foo.cpp -ldl
foo.cpp:11:11: warning: cast between pointer-to-function and pointer-to-object is an extension [-Wpedantic]
  dladdr( (void*)&where_am_i, &info );
          ^~~~~~~~~~~~~~~~~~
1 warning generated.
Run Code Online (Sandbox Code Playgroud)

警告对我来说似乎是合法的,那么有办法解决这个问题吗?

c c++ pointers language-lawyer

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

将对象c#序列化为soap请求

我想将对象序列化为肥皂请求。我创建一个登录请求。我使用 xml 序列化。我不知道我应该做什么来改变这条线:

<login xmlns="http://tasks.ws.com/">

对此:

<tas:login>

我这样做了:

    using System;
    using System.Text;
    using System.Xml;
    using System.Xml.Serialization;

public class Program
{
    public static void Main()
    {
        var env = new LoginRequest.Envelope
        {
            Header = new LoginRequest.Header(),
            Body = new LoginRequest.Body()
            {
                LoginRequest = new LoginRequest
                {
                 //   Id = "o0",
                 //   Root = 1,
                    DeviceId = "***",
                    Firm = "***",
                    Login = "***",
                    Password = "***"
                },
            },
        };
        var serializer = new XmlSerializer(typeof(LoginRequest.Envelope));
        var settings = new XmlWriterSettings
        {
            Encoding …
Run Code Online (Sandbox Code Playgroud)

c# soap xml-serialization

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

Shift_JIS 中的反斜杠和波浪号字符是否有正确的编码?

或者这两个字符根本不存在于 Shift_JIS 中?

\n

Shift_JIS 字符编码方案中的前 128 个字符与 ASCII 匹配,但有两个字符除外:0x5C 是日元符号 ( \xc2\xa5) 而不是反斜杠,0x7E 是上划线 ( \xe2\x80\xbe) 而不是波形符。

\n

虽然有大量关于如何接管 和 的明确信息\xc2\xa5\xe2\x80\xbe\\~无法找到任何关于 Shift_JIS 中是否存在\\和 的明确声明~,或者是否存在替代(可能是多字节) ) 编码来处理这两个移位的 ASCII 字符。

\n

当我尝试编码\\~使用node-iconv时,它会抛出错误。

\n

iconv-lite\xc2\xa5将和编码\\为 0x5C,将 和 编码\xe2\x80\xbe~0x7E。解码时, iconv-lite 目前(不幸的是)将 0x5C 解码为\\0x7E ~,等待对错误报告的响应:

\n\n

character-encoding iconv shift-jis

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

PostgreSQL:将 UUID 转换为 OID

PostgreSQL 中是否有将 UUID (RFC 4122) 转换为 OID (ISO 8824) 的函数?

“2.25”之后的值。是 UUID 作为整数的直接十进制编码。它必须是单个整数的直接十进制编码,全部为 128 位。不得将其分解成多个部分。

例如,该函数将采用 UUID"f81d4fae-7dec-11d0-a765-00a0c91e6bf6"并返回 OID "2.25.329800735698586629295641978511506172918"

参考:

postgresql uuid types casting

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

std :: is_pod vs subclassing

有人可以帮我理解为什么以下代码无法编译(g ++ 4.8).我的理解是可以初始化POD

#include <iostream>
#include <type_traits>

struct my_int
{
  int val_;
};
struct B : public my_int
{
};

int main()
{
  std::cout << std::is_pod<my_int>::value << std::endl;
  std::cout << std::is_pod<B>::value << std::endl;
  const my_int v = { 123 };
  //const B v2 = { 123 }; // does not compile with g++ 4.8.

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

编译是:

g++ -std=c++11 t.cxx
t.cxx: In function 'int main()':
t.cxx:24:21: error: could not convert '{123}' from '<brace-enclosed initializer list>' to 'const B'
   const …
Run Code Online (Sandbox Code Playgroud)

c++ pod c++11

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

了解gcc 4.9.2自动矢量化输出

我正在尝试学习gcc自动矢量化模块.从这里阅读文档后.

这是我尝试过的(debian jessie amd64):

$ cat ex1.c
int a[256], b[256], c[256];
foo () {
  int i;

  for (i=0; i<256; i++){
    a[i] = b[i] + c[i];
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,我只是运行:

$ gcc  -x c -Ofast -msse2 -c   -ftree-vectorize -fopt-info-vec-missed ex1.c
ex1.c:5:3: note: misalign = 0 bytes of ref b[i_11]
ex1.c:5:3: note: misalign = 0 bytes of ref c[i_11]
ex1.c:5:3: note: misalign = 0 bytes of ref a[i_11]
ex1.c:5:3: note: virtual phi. skip.
ex1.c:5:3: note: num. args = 4 (not unary/binary/ternary …
Run Code Online (Sandbox Code Playgroud)

c gcc auto-vectorization

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