C++

Table of contents

include <vector>

初始化

vector<bool> visited;
visited.resize(n, false);

二维初始化

vector<vector<int>> vec2 = vector<vector<int>>(line_num, vector<int>(row_num)) = {
    {0,0,0,0}, {1,2,3,4}
};

二维数组转 vector

// 定义二维数组
int array_size = 1000;
double **array = (double **)malloc(sizeof(double *) * array_size);
for (int i = 0; i < array_size; i++)
    array[i] = (double *)malloc(sizeof(double) * array_size);

for (int i = 0; i < array_size; i++)
    for (int j = 0; j < array_size; j++)
        array[i][j] = i * array_size + j;

// 转vector
vector<vector<double>> t(array_size, vector<double>(array_size));
for (int i = 0; i < array_size; i++)
{
    // 方法1:直接定义一个一维的vector,其首地址为数组的起始地址,末尾地址为最后的地址。
    t[i] = vector<double>(array[i], array[i] + array_size);
    // 方法2:直接使用memcpy进行复制
    // memcpy(&ttt[i][0], &array[i][0], array_size * sizeof(double));
}