小编Art*_*hur的帖子

为什么在 Linux 上使用 Netbeans 时有时会锁定键盘?

我正在使用 Netbeans 开发 Ruby on Rails 应用程序。不幸的是,我遇到了问题。

有时键盘停止工作,我无法在文本编辑器中输入代码。此外,特定于 netbeans 的键盘快捷键也停止工作(例如ctrl+ s)不过,Ubuntu 键盘快捷键仍然有效(alt+ tab...)

我找到的唯一解决方案是最大化/取消最大化文本编辑器或切换选项卡的窗口。

netbeans

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

C++中的boost :: bind和<<运算符

我想绑定<< stream运算符:

for_each(begin, end, boost::bind(&operator<<, stream, _1));
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用:

Error   1   error C2780: 'boost::_bi::bind_t<_bi::dm_result<MT::* ,A1>::type,boost::_mfi::dm<M,T>,_bi::list_av_1<A1>::type> boost::bind(M T::* ,A1)' : expects 2 arguments - 3 provided c:\source\repository\repository\positions.cpp   90
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?

c++ boost bind

5
推荐指数
2
解决办法
1449
查看次数

使用boost通过TCP序列化和发送对象

我试图通过TCP连接发送C++ ojbects:

  • 我的对象都是可序列化的,使用boost序列化.
  • TCP服务器/客户端使用boost asio.

基本上我想发送消息,包含消息类型(正在发送的对象的类型)和数据本身(序列化对象)和数据的大小,以便我可以处理缓冲区(大小可以变化为相同类型的对象,因为它不是POD).

我有点卡住了,因为我不知道怎么发送这个.我不明白将数据转换为char缓冲区的步骤是什么,并在缓冲区的开头添加额外信息(消息类型和大小),然后将此缓冲区提供给tcp连接的send函数,只做尽可能少的副本.

谢谢.

-

c++ serialization boost tcp

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

在 Visual Studio 2008 上设置预调试事件

我想在开始在 Visual Studio 中调试我的程序之前运行一个任务。每次调试程序时我都需要运行此任务,因此构建后事件还不够好。

我查看了设置的“调试”选项卡,但没有这样的选项。

有没有办法做到这一点?

c++ visual-studio-2008 visual-studio

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

如何将 ndarray/多维数组转换为 parquet 文件?

我有一个 <class 'numpy.ndarray'> 数组,我想将其保存到 parquet 文件中以传递给我正在构建的 ML 模型。我的数组有 159573 个数组,每个数组有 1395 个数组。

这是我的数据示例:

[[0.         0.         0.         ... 0.24093714 0.75547471 0.74532781]
 [0.         0.         0.         ... 0.24093714 0.75547471 0.74532781]
 [0.         0.         0.         ... 0.24093714 0.75547471 0.74532781]
 ...
 [0.         0.         0.         ... 0.89473684 0.29282009 0.29277004]
 [0.         0.         0.         ... 0.89473684 0.29282009 0.29277004]
 [0.         0.         0.         ... 0.89473684 0.29282009 0.29277004]]
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码进行转换:

import pyarrow as pa
pa_table = pa.table({"data": Main_x})
pa.parquet.write_table(pa_table, "full_data.parquet")
Run Code Online (Sandbox Code Playgroud)

我得到这个堆栈跟踪:

5 frames
/usr/local/lib/python3.7/dist-packages/pyarrow/table.pxi in pyarrow.lib.table()

/usr/local/lib/python3.7/dist-packages/pyarrow/table.pxi in pyarrow.lib.Table.from_pydict()

/usr/local/lib/python3.7/dist-packages/pyarrow/array.pxi in pyarrow.lib.asarray()

/usr/local/lib/python3.7/dist-packages/pyarrow/array.pxi …
Run Code Online (Sandbox Code Playgroud)

numpy parquet pyarrow

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

C中的范围保护

我想在C中使用范围保护来进行分析.

我想知道我在一个函数中花了多少时间.这是我做的:

int function() {

  tic();

  ... do stuff ...
  if (something)
  {
    toc();
    return 0;
   }

  toc();
  return 1;
}
Run Code Online (Sandbox Code Playgroud)

每次退出函数时我都需要放置一个toc语句.我想这样做,而无需到处复制粘贴toc.有没有通用的方法来做到这一点,使用宏或什么?此外,我不想改变调用函数的方式,因为我需要分析许多函数.

谢谢

c scope guard

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

Ruby C++样式迭代器

我想迭代不同的ruby数组(可能是哈希).我真的不想保持一个索引来跟踪我在每个数组中的位置.这不是因为我很懒,但我已经习惯了使用迭代器的C++方式,我觉得它不容易出错.

那么有没有办法在ruby中获取迭代器,就像我们在c ++中一样(这个例子没有做太多但只是为了示例):

std::set< MyObject >::iterator iter1 = set1.begin();
std::set< MyObject >::iterator iter2 = set2.begin();

while(iter1 != set1.end() && iter2 != set2.end()
{
  if (iter1->timestamp > iter2->timestamp)
    ++iter2;
  else
     ++iter1;
}
Run Code Online (Sandbox Code Playgroud)

c++ ruby iterator

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

在性能方面获得的线程ID是否昂贵?

我需要从我不控制的线程中访问线程ID(它在异步回调函数中,并从一组不同的线程调用).

我想知道访问线程ID在性能方面是否昂贵?

我打算使用其中一个boost::this_thread::get_id()GetCurrentThreadId()来自Windows.

为了澄清,我需要为数据从我的回调到达时准备好一些本地缓存数组,并且我正在计划,以避免错误并锁定为每个线程使用本地缓存,并使用线程id访问正确的缓存.另外因为来的数据总是大小不同,我不能把它放在堆栈中,我想避免一直创建和删除堆数据.

c++ multithreading caching

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

使用HPET时QueryPerformanceFrequency是否准确?

我在玩弄QueryPerformanceFrequency.它过去常常返回3.6 Mhz,但这还不足以让我尝试做什么.

我启用了HPET这个命令bcdedit /set useplatformclock true.现在它又回来了14.3 Mhz.它更精确,更精确......除非它不是.我很快意识到我没有达到我预期的粒度.

如果我尝试轮询QueryPerformanceCounter直到它滴答作响,我可以获得的最小增量是11,这意味着1.27Mhz.如果我试着计算QueryPerformanceCounter一秒钟内可以得到的不同值的数量,我得到1.26Mhz.

所以我想知道有没有办法真正14.3 Mhz充分利用它?

我正在使用Windows 7,64位系统,visual studio 2008.

c++ windows performancecounter visual-c++

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

本征中没有复制乘法

我正在将 Eigen 与大矩阵一起使用,并且正在考虑优化代码的方法,重点是减少动态内存分配。

我正在尝试将两个矩阵相乘。这些矩阵时不时会发生一些变化,但它们的大小保持不变。

我想看到乘法的输出进入一个预定义的矩阵(已经为它分配了内存)。

所以这是我正在做的一个例子:

Eigen::MatrixXd   left, right,result;
// ... 
result = left * right;
// ... left and right values change a little
result = left * right;
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个类似的解决方案:

  void Multiply(
    Eigen::MatrixXd const&  left,
    Eigen::MatrixXd const&  right,
    Eigen::MatrixXd&        result);

  void Example()
  {
    Eigen::MatrixXd   left, right, result;
    // ... 
    Multiply(left, right, result);
    // ... 
    Multiply(left, right, result);
  }
Run Code Online (Sandbox Code Playgroud)

目的基本上是重用result矩阵内存,因为理论上它不应该改变维度。我正在考虑使用,operator*=但我有点意识到它仍然需要一个中间矩阵来进行计算。

c++ performance eigen

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