小编Dul*_*ula的帖子

如何使用C++在Linux中获取文件的所有者名称?

如何使用C++获取Linux文件系统上文件的所有者名称和组名?该stat()呼叫仅提供所有者ID和组ID,但不提供实际名称.

-rw-r--r--.  1 john devl  3052 Sep  6 18:10 blah.txt
Run Code Online (Sandbox Code Playgroud)

我如何以编程方式获得"john"和"devl"?

c++ linux file-ownership

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

Visual Studio 2017 的托管包框架

我正在关注本教程,了解如何创建新的 Visual Studio 项目类型。其中显示“导入托管包框架的源代码文件”。Google 引导我找到此链接,其中包含 MPF 2013 套餐的链接。在第一个链接中,他们说要查找ProjectBase.files第二个链接下载中不存在的文件。

问题:

  1. Visual Studio 2017 的正确 MPF 下载在哪里?
  2. 将来当我们转向 Visual Studio 2019 时,我是否需要下载新的 2019 MPF?

c# mpf visual-studio-extensions

7
推荐指数
1
解决办法
567
查看次数

使用TBB进行非并行任务

我想使用TBB获得线程池行为.但每当我阅读有关TBB的文档时,他们总是谈论并行,并行 - 等等.相比之下,我需要的是一个主线程,用于将任务分配给线程池,以便这些任务将"自己"执行 - 执行任务异步.这里的任务可以是GUI的事件处理.

TBB任务调度程序是否适合此类行为?我从任务调度程序得到的印象是,如果我有可以分解并相互并行执行的任务,那将是有益的.

asynchronous tbb threadpool

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

从Boost图中删除100,000多个节点

我有一个图表(adjacency_list(listS,vecS,bidirectionalS,VertexVal)),我需要删除100,000多个节点.每个节点还包含2个64位整数和另一个64位整数的结构.下面代码中发生的guid检查是检查结构中的第一个整数.

根据VTune,在我的笔记本电脑(i7 2.7GHz,16GB RAM)上大约需要88秒.

以下是我删除节点的方法:

  vertex_iterator vi,vi_end;
  boost::tie(vi, vi_end) = boost::vertices(m_graph);
  while (vi!=vi_end) {
    if (m_graph[*vi].guid.part1 == 0) {
      boost::remove_vertex(*vi,m_graph);
      boost::tie(vi, vi_end) = boost::vertices(m_graph);
    } else 
      ++vi;
  }
Run Code Online (Sandbox Code Playgroud)

Vtune显示boost :: remove_vertex()调用需要88.145秒.有没有更有效的方法来删除这些顶点? boost :: remove_vertex_dispatch()的Vtune数据. 这是88秒的细分

c++ boost

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

从 Postgres ltree 路径获取直接子级

ltree假设路径始终从根开始,如何从 Postgres 中的类型中的给定路径获取直接子级?例如,如果给定的路径是A.B并且列名是ltreepath那么我能想到的最好的方法是:

SELECT distinct(subpath(path, (SELECT distinct(nlevel('A.B'))), 1)) FROM test_ltree WHERE path ~ 'A.B.*{1,}';';

编辑:我只想返回孩子,而路径中没有父母。

postgresql ltree

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