以下代码有什么问题:
#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) 我想知道是否有人试图解决以下问题.我需要在远程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的方法.
我试图计算以下一组点的平均单元大小,如图所示:
.图片是使用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),但我真的在寻找一种快速自动化的方式.
$ 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) 希望这是一个简单的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)
警告对我来说似乎是合法的,那么有办法解决这个问题吗?
我想将对象序列化为肥皂请求。我创建一个登录请求。我使用 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) 或者这两个字符根本不存在于 Shift_JIS 中?
\nShift_JIS 字符编码方案中的前 128 个字符与 ASCII 匹配,但有两个字符除外:0x5C 是日元符号 ( \xc2\xa5) 而不是反斜杠,0x7E 是上划线 ( \xe2\x80\xbe) 而不是波形符。
虽然有大量关于如何接管 和 的明确信息\xc2\xa5,\xe2\x80\xbe但\\我~无法找到任何关于 Shift_JIS 中是否存在\\和 的明确声明~,或者是否存在替代(可能是多字节) ) 编码来处理这两个移位的 ASCII 字符。
当我尝试编码\\或~使用node-iconv时,它会抛出错误。
iconv-lite\xc2\xa5将和编码\\为 0x5C,将 和 编码\xe2\x80\xbe为~0x7E。解码时, iconv-lite 目前(不幸的是)将 0x5C 解码为\\0x7E ~,等待对错误报告的响应:
PostgreSQL 中是否有将 UUID (RFC 4122) 转换为 OID (ISO 8824) 的函数?
“2.25”之后的值。是 UUID 作为整数的直接十进制编码。它必须是单个整数的直接十进制编码,全部为 128 位。不得将其分解成多个部分。
例如,该函数将采用 UUID"f81d4fae-7dec-11d0-a765-00a0c91e6bf6"并返回 OID "2.25.329800735698586629295641978511506172918"。
参考:
有人可以帮我理解为什么以下代码无法编译(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) 我正在尝试学习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)