当前位置: 首页 > news >正文

闸北企业网站建设sem投放

闸北企业网站建设,sem投放,杭州网站建设模板,贵州省建设厅网站公众一体化平台C笔记之初始化二维矩阵的方法 —— 2023年5月20日 上海 code review! 文章目录 C笔记之初始化二维矩阵的方法一.常见方法1. 使用数组2. 使用向量3. 使用数组的动态分配4. 使用嵌套的 std::vector 并使用resize方法5. 初始化固定大小的 std::array 二.C中使用vector初始化二维矩…

C++笔记之初始化二维矩阵的方法

—— 2023年5月20日 上海


code review!
在这里插入图片描述

文章目录

  • C++笔记之初始化二维矩阵的方法
    • 一.常见方法
      • 1. 使用数组
      • 2. 使用向量
      • 3. 使用数组的动态分配
      • 4. 使用嵌套的 std::vector 并使用resize方法
      • 5. 初始化固定大小的 std::array
    • 二.C++中使用vector初始化二维矩阵的所有方法
      • 1. 列表初始化
      • 2. 使用 `resize` 方法——重要:
      • 3. 使用 `push_back` 方法:
      • 4. 使用 `emplace_back` 方法:
      • 5. 使用 `assign` 方法——重要:
      • 6. 使用 `insert` 方法:
    • 三.根据一个已有的二维矩阵使用std::vector来初始化一个新的二维矩阵
      • 1. 使用拷贝构造函数——重要
      • 2. 使用赋值运算符——重要
      • 3. 使用 `assign` 方法
      • 4. 使用 `std::copy` 函数
      • 5. 使用 `std::copy_n` 函数
      • 6. 使用范围基础的 for 循环和 `push_back` 方法
    • 三.根据一个已有的二维矩阵使用std::vector来初始化一个新的同维度的,所有元素都为0的二维矩阵
      • 1. 使用 `resize` 方法和循环——重要
      • 2. 使用 `resize` 方法和 `std::transform` 函数
      • 3. 使用嵌套的 `resize` 方法

一.常见方法

1. 使用数组

你可以使用二维数组来初始化一个矩阵:

int matrix[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

2. 使用向量

你也可以使用std::vector来创建和初始化二维矩阵:

std::vector<std::vector<int>> matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

3. 使用数组的动态分配

如果你需要动态地创建矩阵(例如,其尺寸在运行时确定),可以使用new操作符:

int rows = 3;
int cols = 3;
int** matrix = new int*[rows];
for(int i = 0; i < rows; ++i)matrix[i] = new int[cols];

然后你可以使用循环来初始化这个矩阵。

4. 使用嵌套的 std::vector 并使用resize方法

如果你需要动态地创建和初始化矩阵,但你更喜欢使用std::vector,你可以这样做:

int rows = 3;
int cols = 3;
std::vector<std::vector<int>> matrix;
matrix.resize(rows, std::vector<int>(cols, 0)); // 这将创建一个3x3的矩阵,并用0填充

5. 初始化固定大小的 std::array

对于固定大小的二维矩阵,可以使用std::array

std::array<std::array<int, 3>, 3> matrix = { { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} } };

在这里插入图片描述

二.C++中使用vector初始化二维矩阵的所有方法

在 C++ 中,使用 std::vector 来初始化二维矩阵是常见的做法,因为它提供了灵活的大小和方便的内存管理。以下是一些方法:

1. 列表初始化

你可以在声明时就初始化 std::vector

std::vector<std::vector<int>> matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

2. 使用 resize 方法——重要:

如果你已经知道矩阵的大小,但要稍后填充值,可以使用 resize 方法:

std::vector<std::vector<int>> matrix;
matrix.resize(rows, std::vector<int>(cols));

3. 使用 push_back 方法:

你也可以创建一个空的 std::vector,然后使用 push_back 方法来添加行:

std::vector<std::vector<int>> matrix;
for(int i = 0; i < rows; ++i) {std::vector<int> row;for(int j = 0; j < cols; ++j) {row.push_back(value);}matrix.push_back(row);
}

4. 使用 emplace_back 方法:

类似于 push_back,但 emplace_back 直接在原地构造新元素,通常效率更高:

std::vector<std::vector<int>> matrix;
for(int i = 0; i < rows; ++i) {matrix.emplace_back(std::vector<int>(cols, value));
}

5. 使用 assign 方法——重要:

assign 方法可以用来替换 std::vector 中的所有元素:

std::vector<std::vector<int>> matrix;
matrix.assign(rows, std::vector<int>(cols, value));

6. 使用 insert 方法:

insert 方法可以在 std::vector 的任何位置插入新元素:

std::vector<std::vector<int>> matrix;
for(int i = 0; i < rows; ++i) {matrix.insert(matrix.end(), std::vector<int>(cols, value));
}

注意,在这些例子中,rowscolsvalue 都是整数变量,分别表示矩阵的行数、列数和初始值。

三.根据一个已有的二维矩阵使用std::vector来初始化一个新的二维矩阵

在C++中,如果你已经有一个二维矩阵,你可以通过多种方式使用std::vector来初始化一个新的二维矩阵:

1. 使用拷贝构造函数——重要

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix(old_matrix);

2. 使用赋值运算符——重要

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix = old_matrix;

3. 使用 assign 方法

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix;
new_matrix.assign(old_matrix.begin(), old_matrix.end());

4. 使用 std::copy 函数

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix(old_matrix.size());
std::copy(old_matrix.begin(), old_matrix.end(), new_matrix.begin());

5. 使用 std::copy_n 函数

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix(old_matrix.size());
std::copy_n(old_matrix.begin(), old_matrix.size(), new_matrix.begin());

6. 使用范围基础的 for 循环和 push_back 方法

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix;
for (const auto &row : old_matrix) {new_matrix.push_back(row);
}

以上就是使用 std::vector 根据已有的二维矩阵初始化新的二维矩阵的一些方法。根据你的具体需求和优化考虑,你可能需要选择不同的方法。

三.根据一个已有的二维矩阵使用std::vector来初始化一个新的同维度的,所有元素都为0的二维矩阵

在C++中,如果你已经有一个二维矩阵,并希望创建一个新的、同维度的、所有元素都为0的二维矩阵,以下是一些方法:

1. 使用 resize 方法和循环——重要

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix;
for(const auto &row : old_matrix) {new_matrix.push_back(std::vector<int>(row.size(), 0));
}

2. 使用 resize 方法和 std::transform 函数

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix(old_matrix.size());
std::transform(old_matrix.begin(), old_matrix.end(), new_matrix.begin(), [](const std::vector<int>& row) {return std::vector<int>(row.size(), 0);
});

3. 使用嵌套的 resize 方法

std::vector<std::vector<int>> old_matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
std::vector<std::vector<int>> new_matrix;
new_matrix.resize(old_matrix.size());
for(size_t i = 0; i < old_matrix.size(); ++i) {new_matrix[i].resize(old_matrix[i].size(), 0);
}

在以上的所有例子中,old_matrix 是你已有的二维矩阵,new_matrix 是新创建的二维矩阵。所有的新矩阵元素都被初始化为0,并且新矩阵的尺寸与原矩阵相同。

http://www.ds6.com.cn/news/39951.html

相关文章:

  • 网络营销技巧培训优化疫情防控
  • 网页设计工程师工资优化防控措施
  • 医疗设计网站成都百度推广
  • 合肥微信网站建设百度地图导航2021最新版
  • 邯郸一站式网络推广欢迎咨询关键词排名点击工具
  • 一个服务器做两个网站吗黄页88网站推广方案
  • 个人网站网页模板网站免费下载安装
  • wordpress 高可用蜘蛛seo超级外链工具
  • 南宁网站的优化查看网站流量的工具
  • 国内做外贸的网站谷歌seo外包公司哪家好
  • ps做网站设计百度安全中心
  • wap网站在线生成微信推广平台自己可以做
  • 建站用Wordpress还是使用 ahrefs 进行 seo 分析
  • wordpress发布站点点击软件
  • 电商网站开发方案抖音seo排名系统哪个好用
  • .网站建设风险seo首页排名优化
  • 怎样做模具钢网站seo搜索引擎优化到底是什么
  • 成都网站优化排名推广软文推广一般发布在哪些平台
  • wordpress 生成js视频号排名优化帝搜软件
  • 建设一个视频教学网站沈阳专业seo
  • 做网站推广和头条推广阿里云服务器
  • 做一个网站怎么做的吗武汉网优化seo公司
  • 上饶市建设局网站中国十大公关公司排名
  • 电商网站建设与运营怎么推广app
  • 福州 网站设计建立网站流程
  • 免费咨询妇科医生 在线广州seo招聘
  • 盘锦做网站选哪家好防晒霜营销软文
  • 三河网站建设徐州关键词优化排名
  • 襄阳网站建设哪个好seo快速入门教程
  • 丹阳建站推广管理沈阳关键词推广