小编Pet*_*ter的帖子

STL中的自定义分配器是否只分配实际数据?

假设我在STL中创建了一个链表:

list<int, my_allocator<int> > data;
Run Code Online (Sandbox Code Playgroud)

然后我可以使用更有效的分配器,假设一个内存池.但是列表是否需要分配内部存储器,如前向和后向指针来遍历列表?这些如何分配?使用正常new或以某种方式使用my_allocator

c++ stl

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

具有静态大小数组作为参数的通用lambdas

以下是通用(多态)lambda合法C++ 14吗?

auto f = [](auto x[3]) {
    x[0];
    x[1];
    // etc.
};
Run Code Online (Sandbox Code Playgroud)

GCC和Clang 4接受代码,但Visual Studio 2017不接受.这合法吗?

error C3318: 'auto [3]': an array cannot have an element type that contains 'auto'
Run Code Online (Sandbox Code Playgroud)

c++ generic-lambda c++14

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

防止我的文档中的"MATLAB"文件夹

我将Matlab(2009b,Windows 7)设置为从一个特殊的文件夹开始,我保存所有的Matlab文件和一个启动脚本.此文件夹不在"我的文档"中

不过,Matlab每次启动时都会在"我的文档"中创建一个名为"MATLAB"的空文件夹.这非常令人讨厌,因为此更改会传播到共享文档文件夹的其他计算机.我怎么能阻止这个?

matlab

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

是否有成功学习奇偶校验功能的机器学习算法?

奇偶校验功能是从n比特和输出1的载体的功能,如果总和为奇数,否则为0.这可以被视为分类任务,其中n输入是特征.

有没有机器学习算法可以学习这个功能?显然随机决策森林不会成功,因为任何严格的特征子集都没有预测能力.此外,我相信没有固定深度的神经网络会成功,因为计算奇偶校验功能不在复杂度类AC0中.

machine-learning

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

是否可以在Windows 7,64位上使用Qt4获取本机菜单?

使用Qt(4)编写的应用程序在64位Windows 7上运行时没有本机菜单.这对于VLC,Lyx等众所周知的应用来说都是如此.

Qt菜单不像原生菜单那样,这可能很烦人.例如,请考虑下面的屏幕截图.

Qt菜单示例

如果鼠标沿红色路径快速移动,子菜单将立即关闭.对于Windows(以及Mac)上的本机菜单,存在延迟.这可能使在菜单中导航变得困难,因为它们不会像用户期望的那样运行.

是否可以在Windows中获取原生菜单?

user-interface qt menu qt4 windows-7

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

使用C++ 11克隆Cygwin

我在Cygwin上安装了Clang,我尝试编译这段代码:

#include <iostream>
int main() {
  std::cout << "hello world!" << std::endl;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我这样做,那很好clang++ file.cpp.如果我这样做,它就不起作用clang++ file.cpp -std=c++11.我从标准标题中得到错误,如下所示:

In file included from file.cpp:1:
In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/include/c++/iostream:39:
In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/include/c++/ostream:39:
In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/include/c++/ios:39:
In file included from /usr/lib/gcc/i686-pc-cygwin/4.5.3/include/c++/exception:150:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/include/c++/exception_ptr.h:132:13: error:
      unknown type name 'type_info'
      const type_info*
Run Code Online (Sandbox Code Playgroud)

Cygwin Clang是不是开启了C++ 11,或者我可以做些什么来解决这个问题?

c++ cygwin clang++

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

OpenCV,Matlab和STL容器

最新版本的OpenCV中的许多功能都需要使用STL容器.尝试在Matlab MEX文件中使用它时遇到问题.我正在Matlab中编译MEX文件.OpenCV和Matlab都使用"/ MD"标志,它是"多线程DLL",用于代码生成.

编译:MSVC++ 9.0 Matlab 2010a OpenCV最新SVN,2.11我认为.

我使用的代码非常简单:

vector<KeyPoint> keypoints_vec;
SurfFeatureDetector surf;
surf.detect(cvImg,keypoints_vec);
Run Code Online (Sandbox Code Playgroud)

当在Matlab MEX文件中运行时,这会编译但崩溃.崩溃在vector :: resize中的OpenCV中.旧接口(没有STL容器)工作正常,但已弃用.如何在Matlab和OpenCV之间使用STL容器?

c++ matlab opencv stl mex

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

如何在MATLAB中绘制纹理贴图三角形?

(u,v)在图像的坐标中有一个三角形.我想在3D坐标处绘制这个三角形,(X,Y,Z)用图像中的三角形进行纹理映射.

这里,u,v,X,Y,Z所有具有三个元素的向量代表三角形的三个角.

我有一个非常难看,缓慢且令人不满意的解决方案,其中我:

  1. 提取图像的矩形部分
  2. 使用由三个点定义的变换将其转换为3D空间
  3. 用表面画它
  4. 最后用AlphaData掩盖不属于三角形的所有东西

当然必须有一种更简单的方法吗?

matlab geometry rendering texture-mapping geometry-surface

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

带SWIG的几个numpy数组

我使用SWIG将numpy数组从Python传递到C++代码:

%include "numpy.i"
%init %{
import_array();
%}

%apply (float* INPLACE_ARRAY1, int DIM1) {(float* data, int n)};

class Class 
{
  public: 
  void test(float* data, int n)
  {
    //...
  }
};
Run Code Online (Sandbox Code Playgroud)

在Python中:

c = Class()
a = zeros(5)
c.test(a)
Run Code Online (Sandbox Code Playgroud)

这有效,但是如何将多个numpy数组传递给同一个函数?

c++ python swig numpy

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

使用"if constexpr"防止元组超出范围

以下代码与GCC和Clang编译良好,但在Visual Studio的最新更新中停止工作(/ std:c ++ latest):

#include <tuple>

template<int pos, typename... T>
void check_tuple(T... types) {
    if constexpr (pos <= -1) {
        // nothing
    } else {
        using Type = typename std::tuple_element<pos, std::tuple<T...>>::type;
    }
}

int main() {
    check_tuple<0>(1.0, 1.0);
    check_tuple<-1>(1.0, 1.0);
}
Run Code Online (Sandbox Code Playgroud)

在最新版本的Visual Studio(/ STD:C++最新的),编译失败,元组索引越界(标准:: tuple_element <18446744073709551613,性病::组<>>).

有可能像constexpr那样防止元组超出界限吗?

c++ visual-c++ c++17

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