相关疑难解决方法(0)

std :: vector元素是否保证是连续的?

我的问题很简单:std :: vector元素是否保证是连续的?在order word中,我可以使用指向std :: vector的第一个元素的指针作为C数组吗?

如果我的记忆力很好,那么C++标准就没有这样的保证.但是,如果元素不连续,那么std :: vector要求几乎不可能满足它们.

有人可以澄清一下吗?

例:

std::vector<int> values;
// ... fill up values

if( !values.empty() )
{
    int *array = &values[0];
    for( int i = 0; i < values.size(); ++i )
    {
        int v = array[i];
        // do something with 'v'
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ standards vector

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

如何在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
查看次数

标签 统计

c++ ×2

standards ×1

vector ×1