小编Elp*_*rto的帖子

修复C++中的分段错误

我正在为Windows和Unix编写一个跨平台的C++程序.在Window端,代码将编译并执行没有问题.在Unix方面,它会编译然而当我尝试运行它时,我得到一个分段错误.我最初的预感是指针存在问题.

找到并修复分段错误错误的好方法是什么?

c++ debugging segmentation-fault

72
推荐指数
4
解决办法
9万
查看次数

为什么int和而不是unsigned int用于C和C++ for循环?

这是一个相当愚蠢的问题,但为什么int常用而不是unsigned int在C或C++中为数组定义for循环时?

for(int i;i<arraySize;i++){}
for(unsigned int i;i<arraySize;i++){}
Run Code Online (Sandbox Code Playgroud)

我认识到int在进行数组索引以外的操作时使用的好处以及使用C++容器时迭代器的好处.是不是因为在循环数组时无关紧要?或者我应该一起避免它并使用不同的类型,如size_t

c int unsigned for-loop

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

param [out]和doxygen返回之间的区别?

Doxygen中\ param [out]\ return有什么区别?它们似乎都记录了函数的输出/返回.差异是由于void函数没有返回值而只是param[out]有效吗?

doxygen

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

C++容器的一般用例

C++标准库容器的一般用例是什么?

  • 位集合
  • 双端队列
  • 名单
  • 地图
  • 多重映射
  • 多集
  • priority_queue
  • 队列
  • 向量

例如,对于配对搜索,地图通常更好.

c++ containers stl

26
推荐指数
2
解决办法
7036
查看次数

确定C++中的Linux或Windows

我正在用C++编写一个跨平台兼容的函数,它根据输入文件名创建目录.我需要知道机器是Linux还是Windows并使用适当的正斜杠或反斜杠.对于下面的代码,如果机器是Linux那么isLinux = true.我如何确定操作系统?

bool isLinux;
std::string slash;
std::string directoryName;

if isLinux
   slash = "/";
else
   slash = "\\";
end

boost::filesystem::create_directory (full_path.native_directory_string() + slash + directoryName); 
Run Code Online (Sandbox Code Playgroud)

c++ linux windows cross-platform

22
推荐指数
3
解决办法
3万
查看次数

如何在不加载的情况下在MATLAB中检查MAT文件的内容?

我在MAT文件中有一个大型结构.我想检查结构中是否存在特定字段而不加载MAT文件,因为内容非常大,我想最小化内存使用.

这是可能的,还是我必须先加载它,如下例所示?:

load('test.mat');             %# Load the MAT-file
tf = isfield(s,'fieldname');  %# Check if structure s has field 'fieldname'
Run Code Online (Sandbox Code Playgroud)

matlab struct mat-file

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

稀疏与普通数组Matlab

在Matlab中,如果我还有很多计算要做,那么稀疏数组比普通数组更好,大约25%的数组是非零?

performance matlab sparse-matrix

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

Matlab独立测试

对于1,000,000次观察,我观察到一个离散事件X,对照组为3次,对于测试组为10次.

我需要在Matlab中进行Chi square独立测试.这是你在r中的方式:

m <- rbind(c(3, 1000000-3), c(10, 1000000-10))
#      [,1]   [,2] 
# [1,]    3 999997
# [2,]   10 999990
chisq.test(m)
Run Code Online (Sandbox Code Playgroud)

r函数返回卡方= 2.7692,df = 1,p值= 0.0961.

我应该使用或创建什么Matlab函数来执行此操作?

statistics matlab r

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

创建linux make/build文件

我正在将一个C++项目从Windows迁移到Linux,现在我需要创建一个build/make文件.我以前从未创建过build/make文件.我还需要包含Boost库以使其更复杂.它也必须是一个makefile,我还需要学习如何创建makefile,所以CMake和SCON都出来了.由于使用了Boost,IDE也出局了,我的所有IDE(Eclipse,VS等)都只在Windows上运行.我必须从头开始生成一个makefile.

那么创建Linux c ++ make文件的基础知识是什么?如何将Boost库合并到其中以使其正确链接?

到目前为止,我的makefile看起来像这样.我认为CFLAGS并且LDFLAGS是编译器和优化选项,但不完全确定.

CC = g++
CFLAGS = -wall -o3 - c
LDFLAGS = -03 -mfp-rounding-mode=n
Run Code Online (Sandbox Code Playgroud)

我提供赏金,因为我仍然非常迷失.如果有人喜欢冒险,我需要在linux中编译以下内容

  • simple_ls.h
  • simple_ls.cpp
  • 2dquicksort.h
  • rawr.h
  • rawr.cpp
  • converter.cpp

simple_ls.h中的标题:

#include "boost/filesystem/operations.hpp"
#include "boost/filesystem/path.hpp"
#include "boost/lexical_cast.hpp"

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
Run Code Online (Sandbox Code Playgroud)

2dquicksort.h中的标题:

#include <stdio.h>
#include <ctype.h>
#include <iostream>
Run Code Online (Sandbox Code Playgroud)

rawr.h中的标头:

#include <iostream> // not required by most systems
#include <fstream>
#include <iomanip>
#include <cstdlib> // or (stdlib.h) for exit()

#include <cmath> 
#include <vector>
#include <limits>
#include …
Run Code Online (Sandbox Code Playgroud)

c++ linux boost makefile

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

如何格式化字符串以用作MATLAB中的结构字段名称?

我想从字符串中删除连字符(-),斜杠(/)和空格() from a string name(i)以便我可以将其用作结构字段名称.

这是我目前正在使用该功能的丑陋方式strrep:

cell2mat(strrep(strrep(strrep(name(i), '-',''),'/',''),' ', ''))
Run Code Online (Sandbox Code Playgroud)

我也尝试了其他变体,例如:

strrep(name(i),{'-','/'},{'',''});
strrep(name(i),['-','/'],['','']);
Run Code Online (Sandbox Code Playgroud)

什么是更有效的方法呢?

string matlab field matlab-struct

9
推荐指数
2
解决办法
6285
查看次数