小编nar*_*ngi的帖子

如何在HTML中访问"embed"标记的内容

我有一个SVG文件,我不想将其粘贴到HTML文件中,因为它会变得混乱.因此,在咨询了w3schools之后,"embed"标签似乎是将外部SVG文件包含到HTML中最安全的方式.

<embed src="path_to_svg" type="image/svg+xml" id='svgsource' />
Run Code Online (Sandbox Code Playgroud)

但是,我需要通过主html文件中的javascript通过DOM访问svg元素.不幸的是

document.getElementById('my_svg_id')
Run Code Online (Sandbox Code Playgroud)

也不

document.getElementById('svgsource').contentDocument
Run Code Online (Sandbox Code Playgroud)

适用于任何浏览器.使用"object"标签也不起作用.

html javascript svg

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

是否可以在 C++ 代码中使用 Linux Perf 分析器?

我想测量我的 C++ 代码某些部分的 L1、L2 和 L3 缓存命中/未命中率。我对在我的整个应用程序中使用 Perf 不感兴趣。Perf 可以用作 C++ 中的库吗?

int main() {
    ...
    ...
    start_profiling()
    // The part I'm interested in
    ...
    end_profiling()
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

我给了英特尔 PCM 一个机会,但我遇到了两个问题。首先,它给了我一些奇怪的数字。其次,它不支持 L1 缓存分析。

如果 Perf 无法实现,那么获取该信息的最简单方法是什么?

c++ linux performancecounter cpu-cache perf

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

C++ 11索引模板参数包在运行时以访问第N类型

从这个SO主题(和这篇博文),我知道如何在模板参数包中访问第N类型.例如,上述SO问题的答案之一表明:

template<int N, typename... Ts> using NthTypeOf = typename std::tuple_element<N, std::tuple<Ts...>>::type;

using ThirdType = NthTypeOf<2, Ts...>;
Run Code Online (Sandbox Code Playgroud)

但是,这些方法仅在编译时起作用.尝试做以下事情:

int argumentNumber = 2;
using ItsType = NthTypeOf<argumentNumber, Arguments...>;
Run Code Online (Sandbox Code Playgroud)

会导致编译错误:

错误:非类型模板参数不是常量表达式

有没有办法在运行时访问第N类型?


这是我的用例:

我的程序读取一个文本文件,它基本上是一个数字数组.每个数字i指的是我的类基于模板化的模板参数包的第i种类型.基于该类型,我想声明该类型的变量并对其执行不同的操作.例如,如果它是一个字符串,我想声明一个字符串并进行字符串匹配,如果它是一个整数,我想计算一个数字的平方根.

c++ variadic-templates c++11

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

在 gRPC 中使用 UDP

是否可以在 gRPC 中将 Protobuf 与 UDP 结合使用?

gRPC 接口似乎完全基于 TCP 连接。我能找到的唯一 UDP 示例是以下三个文件中 gRPC 源代码中的示例,但是这个示例似乎与 gRPC 的 RPC 层提供的示例有很大不同,例如它没有存根的概念,而且它没有不要使用 Protobuf,而是使用原始有效负载等。

src/core/lib/iomgr/udp_server.h

src/core/lib/iomgr/udp_server.cc

测试/核心/iomgr/udp_server_test.cc

c++ udp protocol-buffers grpc

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

在hadoop中运行多个MapReduce作业

我想运行一系列map reduce工作,所以最简单的解决方案似乎是jobcontroller.说我有两个工作,job1和job2.我想在job1之后运行job2.嗯,它遇到了一些问题.经过几个小时的调试后,我将代码缩小到以下几行:

JobConf jobConf1 = new JobConf();  
JobConf jobConf2 = new JobConf();  
System.out.println("*** Point 1");
Job job1 = new Job(jobConf1);  
System.out.println("*** Point 2");
Job job2 = new Job(jobConf2);
System.out.println("*** Point 3");
Run Code Online (Sandbox Code Playgroud)

我在运行代码时不断获得此输出:

*** Point 1    
10/12/06 17:19:30 INFO jvm.JvmMetrics: Initializing JVM Metrics with processName=JobTracker, sessionId=
*** Point 2    
10/12/06 17:19:30 INFO jvm.JvmMetrics: Cannot initialize JVM Metrics with processName=JobTracker, sessionId= - already initialized
*** Point 3
Run Code Online (Sandbox Code Playgroud)

我想我的问题是以某种方式与"无法初始化JMV ......"相关联.那是什么?以及如何实例化多个作业,以便将它们传递给JobController.

当我在初始化第二个作业之前添加job1.waitForTheCompletion(true)时,它给了我这个错误:

    10/12/07 11:28:21 INFO jvm.JvmMetrics: Cannot initialize JVM Metrics with processName=JobTracker, sessionId= - …
Run Code Online (Sandbox Code Playgroud)

java hadoop mapreduce

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

如何在gnuplot中保留对齐关键文本?

在此输入图像描述

默认情况下,gnuplot在右侧对齐键.由于我将图例放在右上角部分,我想将它们对齐在左边.

gnuplot

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

带有-flto和-std = c ++ 17的g ++ 7会导致分段错误(中止核心转储)

码:

#include <iostream>
#include <string>
#include <fstream>
int main(int argc, char *argv[]) {
    std::string filename = "dummyfile";
    std::ifstream infile(filename);
    std::string line;
    std::getline(infile, line);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译并链接:

g++-7 -std=c++17 -flto mycode.cpp
Run Code Online (Sandbox Code Playgroud)

结果是:

*./a.out'出错:free():无效指针:0x0000000000602200* Aborted(core dumped)

它编译并运行良好,没有-flto标志.保持-flto但改变-std=c++17-std=c++14-std=c++11将使其工作过.如此看来,有一些有关的组合fltoc++17.

gdb结果:

#0  0x00007ffff7a4acc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff7a4e0d8 in __GI_abort () at abort.c:89
#2  0x00007ffff7a87f24 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7ffff7b966c8 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175 …
Run Code Online (Sandbox Code Playgroud)

c++ g++ segmentation-fault lto c++17

5
推荐指数
0
解决办法
359
查看次数

在gcc和g ++ include和lib路径中指定顺序

我有一个库的多个版本,都有相同的名称(boost库),每个都安装在自己的目录中.我知道如何指示编译器和链接器在某些目录中搜索头文件和库(-I-L).我也知道如何将实际的库文件传递给链接器.

我的问题是如何在编译器和链接器的搜索路径中指定优先级,以便它A在搜索文件夹之前搜索文件夹B并获取A库的版本而不是Bs.我对所有符合条件的目录之间的顺序感兴趣,即默认值gccg++1,以及在-I和之后指定的目录-L.

我的发行版是Ubuntu 14.04,我用g++ 4.8起来了6.

c++ linker g++

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

在成员函数上启动线程时调用不需要的析构函数

我的main函数中有一个事件循环,我想创建一个对象并在对象的成员函数上运行一个线程.但是,我注意到在线程启动之前对象被销毁了.我不明白为什么.

我的代码:

#include <iostream>
#include <thread>

class MyClass {
public:
    MyClass(){
        std::cout << "MyClass constructor is called" << std::endl;
    }
    ~MyClass(){
        std::cout << "MyClass destructor is called" << std::endl;
    }    
    void start(){
        std::cout << "MyClass is starting" << std::endl;
    }
};

int main()
{
        MyClass mine;
        std::thread t(&MyClass::start, mine);
        t.join();
}
Run Code Online (Sandbox Code Playgroud)

输出:

MyClass constructor is called
MyClass destructor is called
MyClass is starting
MyClass destructor is called
MyClass destructor is called
Run Code Online (Sandbox Code Playgroud)

期望的输出:

MyClass constructor is called
MyClass is starting
MyClass …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading c++11

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