相关疑难解决方法(0)

C++中是否存在最大数组长度限制?

C++中的数组是否有最大长度?

它是C++限制还是取决于我的机器?它可以调整吗?它取决于数组的类型吗?

我可以以某种方式突破该限制,还是必须寻找更好的信息存储方式?什么应该是最简单的方法?

我要做的是在数组上存储long long int,我在Linux环境中工作.我的问题是:如果我需要存储N> 10位数的N长整数数组,我该怎么办?

我需要这个,因为我正在为学校编写一些加密算法(例如p-Pollard),然后点击这个整数墙和数组表示的长度.

c++ arrays

163
推荐指数
4
解决办法
24万
查看次数

分配二维数组的怪异方式?

在一个项目中,有人推动了这一行:

double (*e)[n+1] = malloc((n+1) * sizeof(*e));
Run Code Online (Sandbox Code Playgroud)

据推测,这会创建一个(n + 1)*(n + 1)双倍的二维数组.

据说,我说,因为到目前为止,我没有人问我能告诉我它的作用,确切地说,它起源于何处或为什么它应该起作用(据称,它确实如此,但我还没有购买它).

也许我错过了一些明显的东西,但如果有人能够向我解释上述内容,我会很感激.因为就个人而言,如果我们使用我们真正理解的东西,我会感觉好多了.

c arrays malloc allocation multidimensional-array

110
推荐指数
3
解决办法
4766
查看次数

如何创建动态整数数组

如何使用new关键字在C++中创建动态整数数组?

c++

71
推荐指数
4
解决办法
30万
查看次数

指针指针动态二维数组

这个网站上的第一个计时器,所以这里..

我是C++的新手,我目前正在阅读"DS Malik的数据结构使用C++第二版"一书.

在书中,Malik提供了两种创建动态二维数组的方法.在第一种方法中,将变量声明为指针数组,其中每个指针都是整数类型.恩.

int *board[4];
Run Code Online (Sandbox Code Playgroud)

..然后使用for循环创建'列',同时使用指针数组作为'行'.

第二种方法,您使用指针指针.

int **board;
board = new int* [10]; 
Run Code Online (Sandbox Code Playgroud)

等等

我的问题是:哪种方法更好?**方法对我来说更容易可视化,但第一种方法可以大致相同的方式使用.两种方式都可用于制作动态二维数组.

编辑:上面的帖子不够清楚.这是我尝试过的一些代码:

int row, col;

cout << "Enter row size:";
cin >> row;
cout << "\ncol:";
cin >> col;

int *p_board[row];
for (int i=0; i < row; i++)
    p_board[i] = new int[col];

for (int i=0; i < row; i++)
{
    for (int j=0; j < col; j++)
    {
        p_board[i][j] = j;
        cout << p_board[i][j] << " ";
    }
    cout << endl;
}
cout << …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers memory-management dynamic-arrays

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

std :: vector of std :: vectors contiguity

我知道std::vector<T>内部存储它的数据(除非它是std::vector<bool>)旧C++03标准和新标准C++11.

很好的stackoverflow问题处理这个并引用标准:答案,答案.

嵌套向量中的数据怎么样std::vector <std::vector <T> >?怎么存储?

如果每个内部向量都需要连续存储它的数据,那么它怎么可能是真的&v[n] == &v[0] + n for all 0 <= n < v.size().

要说这个略有不同,是否可以"简单地"和顺序地(通过指针或类似)访问存储在这种嵌套结构中的所有元素,就像对一维矢量所做的那样?

c++ vector stdvector

18
推荐指数
3
解决办法
7920
查看次数

如何将未知大小的二维数组传递给函数

我想创建类库,一个函数,其参数是一个未知大小的矩阵,用户将创建自己的矩阵并使用自己的大小并将其传递给此函数,对其矩阵进行一些操作,如下所示,将是功能

calculateDeterminantOfTheMatrix( int matrix[][])
{
   some Operations to do on matrix 
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers function matrix

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

HDF5 C++接口:编写动态2D数组

我正在使用HDF5 C++ API编写2D数组数据集文件.HDF小组有一个例子来创建一个静态定义的数组大小的HDF5文件,我已经修改过以满足下面的需求.然而,我需要动态阵列,其中两个NXNY在运行时确定.我找到了另一种使用"new"关键字创建2D数组的解决方案,以帮助创建动态数组.这是我有的:

#include "StdAfx.h"
#include "H5Cpp.h"
using namespace H5;

const H5std_string FILE_NAME("C:\\SDS.h5");
const H5std_string DATASET_NAME("FloatArray");
const int NX = 5; // dataset dimensions
const int NY = 6;

int main (void)
{
    // Create a 2D array using "new" method
    double **data = new double*[NX];
    for (int j = 0; j < NX; j++)         // 0 1 2 3 4 5
    {                                    // 1 2 3 4 5 6 …
Run Code Online (Sandbox Code Playgroud)

c++ dynamic-data hdf5 multidimensional-array

11
推荐指数
2
解决办法
9287
查看次数

如何在c ++中创建连续的2d数组?

我想创建一个在C++中返回连续2D数组的函数.

使用以下命令创建阵列不是问题:

 int (*v)[cols] = new (int[rows][cols]);
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何将此数组作为函数的常规类型返回.功能是:

  NOT_SURE_WHAT_TYPE create_array(int rows, int cols)
  {
        int (*v)[cols] = new (int[rows][cols]);
        return v;
  }
Run Code Online (Sandbox Code Playgroud)

我尝试了双*[]和双**,两者都不起作用.我不想使用double*,因为我想从外部访问这个数组作为2D数组.

相关问题:如何使用new在C++中声明二维数组?

c++

10
推荐指数
5
解决办法
6206
查看次数

为什么在初始化多维数组时我不能完全省略维度?

在Visual Studio 2010中,此初始化按预期工作:

char table[2][2] = {
                       {'a', 'b'},
                       {'c', 'd'}
                   };
Run Code Online (Sandbox Code Playgroud)

但是写下这样的东西似乎不合法:

char table[][] = {
                     {'a', 'b'},
                     {'c', 'd'}
                 };
Run Code Online (Sandbox Code Playgroud)

Visual Studio抱怨此数组可能不包含'that'类型的元素,并且在编译之后,VS报告两个错误:缺少索引和太多初始化.

问题:为什么在初始化多维数组时我不能完全省略维度?

c initialization multidimensional-array

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

何时在C++中使用指针指针?

我想知道我们何时在C++中使用Pointer指针以及为什么我们需要指向指针?我知道当我们指向一个指针时,这意味着我们将变量的内存地址保存到内存中,但我不知道为什么需要它?另外我看到一些例子总是在创建矩阵时使用指针到指针!但为什么Matrix可能需要Pointer指针?

c++

6
推荐指数
3
解决办法
2872
查看次数