小编Can*_*can的帖子

如何使用C++中的大小初始化3维向量

例如,如果我们初始化vector<vector<vector<double>>> f,则不指定每个方向的尺寸.所以,我想知道,我们应该插入什么命令来制作f大小[3][4][5].我们使用新的还是别的什么?

谢谢你的协助!

c++ initialization vector

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

如何在C++中使用复数"i"

我现在正在编写一个简单的DFT算法,我想在复指数中使用复数i.我看到有人使用#include<complex>#include<cmath>,然后他们用重载符号Iexp(2*I).但它似乎在我的visual studio编译器中不起作用.那么,任何人都可以给出一个使用复指数的简单例子吗?谢谢!

c++ overloading complex-numbers complextype

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

struct(c)中的malloc错误

我在C头中有以下代码

typedef struct {
    kiss_fft_scalar r;
    kiss_fft_scalar i;
} kiss_fft_cpx;
Run Code Online (Sandbox Code Playgroud)

我在测试程序中实现了以下代码

kiss_fft_cpx *fin = malloc(4*sizeof(kiss_fft_cpx));
Run Code Online (Sandbox Code Playgroud)

它给了我错误信息:"void类型的值不能用于初始化'kiss_fft_ctx'类型的实体".

我正在使用Visual Studio C/C++ win32控制台项目.

谁能告诉我如何在这里正确使用malloc?谢谢!

c c++ malloc struct

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

为什么代码不会在代码块中的断点处中断

我按照此视频中的说明逐行运行代码:

http://www.youtube.com/watch?v=6CGH9Z19dS8

然而,在我按下F8之后,它只是在没有进入断点的情况下运行(我看不到黄色三角形).另外,我也试过"附加到过程",它是一样的.

我错过了什么吗?(​​顺便说一句,我的项目中有多个文件,但我想这不会是问题,对吧?因为我可以在VS工作室轻松完成这个.也许,我对代码块并不熟悉)

感谢帮助!

如果您感兴趣,这是调试器日志:

Building to ensure sources are up-to-date
Selecting target: 
Release
Adding source dir: C:\Users\liuca_000\Documents\Lattice_Boltzmann_code\lattice_boltzmann\
Adding source dir: C:\Users\liuca_000\Documents\Lattice_Boltzmann_code\lattice_boltzmann\
Adding file: C:\Users\liuca_000\Documents\Lattice_Boltzmann_code\lattice_boltzmann\bin\Release\lattice_boltzmann.exe
Changing directory to: C:/Users/liuca_000/Documents/Lattice_Boltzmann_code/lattice_boltzmann/.
Set variable: PATH=.;C:\Program Files (x86)\CodeBlocks\MinGW\bin;C:\Program Files (x86)\CodeBlocks\MinGW;C:\Python27\Lib\site-packages\PyQt4;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Python27;C:\Python27\DLLs;C:\Python27\Scripts;C:\Python27\Lib\site-packages\vtk;C:\Python27\gnuplot\binary;C:\Python27\Lib\site-packages\osgeo;C:\Program Files (x86)\pythonxy\SciTE-3.3.2-3;C:\Program Files (x86)\pythonxy\console;C:\MinGW32-xy\bin;C:\Program Files (x86)\pythonxy\swig;C:\Program Files (x86)\pythonxy\gettext\bin;C:\Program Files\MATLAB\R2012b\runtime\win64;C:\Program Files\MATLAB\R2012b\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\MiKTeX 2.9\miktex\bin\x64;C:\Program Files (x86)\Windows Live\Shared;C:\Users\liuca_000\AppData\Roaming\MiKTeX\2.9\miktex\bin\x64;.;\
Starting debugger: C:\Program Files (x86)\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname  -quiet  -args C:/Users/liuca_000/Documents/Lattice_Boltzmann_code/lattice_boltzmann/bin/Release/lattice_boltzmann.exe
done
Registered new type: wxString
Registered new type: STL String
Registered new type: STL …
Run Code Online (Sandbox Code Playgroud)

c++ debugging breakpoints codeblocks

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

如何准确理解函数递归?

我目前正在编写一些分治算法,其中函数递归在任何地方使用,但我有一个非常模糊的想法或不知道它是如何工作的,这就是为什么我在这里发布它并希望你不介意它太基本.

例如,如果我们有以下代码:

#include<iostream>
using namespace std;
void Recursion(int n)
{
  cout << n << endl;
  if(n > 0)
  {
    Recursion(n-1);
  }
  cout<<n<<endl;
}

int main()
{
  Recursion(3);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我测试了Recursion(3),终端中的打印输出是:

3
2
1
0
0
1
2
3
Run Code Online (Sandbox Code Playgroud)

我可以理解函数的递归调用的概念,但我不理解它是如何工作的机制.例如,他们无法再次调用该函数后会做什么?例如,在这里,我可以理解它打印从3到0,但为什么它也会再次从0打印到3?我听说是因为函数递归存储在一个递归的堆栈中,当它到达"底部"时,它也必须删除.

但无论如何,我不知道.那么,任何人都可以帮助我,并清楚地告诉我这里发生了什么以及函数调用的确切流程?

谢谢你的帮助!

c++ recursion

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

如何将复杂的csv文件导入数值向量到Matlab中

我想知道我们应该如何读取由字符串,双精度和字符等组成的复杂csv文件.

例如,您能否提供一个可以在此csv文件中提取数值的成功命令?

请点击这里.

例如:

yield curve data 2013-10-04     
Yields in percentages per annum.        


Parameters - AAA-rated bonds        
Series key   Parameters  Description
YC.B.U2.EUR.4F.G_N_A.SV_C_YM.BETA0  2.03555 Euro area (changing composition) - Government bond, nominal, all issuers whose rating is triple A - Svensson model - continuous compounding - yield error minimisation - Yield curve parameters, Beta 0 - Euro, provided by ECB
YC.B.U2.EUR.4F.G_N_A.SV_C_YM.BETA1  -2.009068   Euro area (changing composition) - Government bond, nominal, all issuers whose rating is triple A - Svensson …
Run Code Online (Sandbox Code Playgroud)

csv matlab

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

在Matlab中是否有任何牛顿方法求解器

我知道如何在Matlab中编写Newton方法,但是我仍然好奇Matlab中是否有内置的Newton求解器?(或者是二分法?)

matlab newtons-method

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

如何在c ++中快速交换容器(如list和vector)中的对象

我想知道快速交换方法在C++容器中是什么,例如list和vector,因为我还没有找到任何内置的交换函数.FYI,我想交换对象而不是整个列表.

例如,假设我们有这样的int序列3 2 4 5并且它们存储在列表容器(stl)中,我想交换2和4.这是我提出的哑方法:

list<int> numbers;
numbers.push_back(3);
numbers.push_back(2);
numbers.push_back(4);
numbers.push_back(5);
list<int>::iterator item;
item=numbers.begin();
advance(item,2);
int key = *item;
advance(item,-1);
numbers.insert(item,key);
advance(item,1);
numbers.erase(item);
Run Code Online (Sandbox Code Playgroud)

所以,简单来说,我在这里做的只是"复制,插入和删除",我这样做的原因是我听说列表容器对插入和删除元素非常有效,但我很确定应该更好的算法.此外,我还听说存在一个与指针相关的恒定时间交换方法,所以任何人都知道它的一切?

谢谢你的帮助.

c++ containers swap

0
推荐指数
2
解决办法
4592
查看次数

分而治之是否能真正赢得增加的内存分配?

我刚刚编写了一些经典的分治算法,我提出了以下问题:(更多是好奇心)

不可否认,在许多情况下,分而治之算法比传统算法更快; 例如,在快速傅里叶变换中,它提高了从N ^ 2到Nlog2N的复杂度.然而,通过编码,我发现,由于"划分",我们有更多的子问题,这意味着我们必须创建更多的容器并在子问题上分配更多的记忆.考虑一下,在合并排序中,我们必须在每次递归中创建左右数组,而在快速傅里叶变换中,我们必须在每次递归中创建奇数和偶数数组.这意味着,我们必须在算法期间分配更多的内存.

所以,我的问题是,实际上,比如在C++中,当我们还必须增加内存分配的复杂性时,像分而治之类的算法真的会赢吗?(或者内存分配根本不需要运行时间,而且成本是零?)

谢谢你的协助!

c++ algorithm memory-management divide-and-conquer

0
推荐指数
2
解决办法
360
查看次数

"新"会导致功能中的内存泄漏吗?

假设我们想在C++中声明一个函数,我在其中声明一个局部变量,int p=new int [10];然后我做了一些操作,最后我做了一些操作return p;.

正如人们常说的那样,如果我们使用new,我们必须delete.但我想在这种情况下,我们不应该删除,对吧?否则,它根本不能返回p,对吧?但是,我也在考虑是否应该删除函数在测试时返回的项目int main().

c++ memory memory-leaks memory-management

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