c++ - 如何在 C++ 中返回一个所有元素都是 1 的二维向量
问题描述
我是 C++ 新手,我想创建一个所有元素都是 1 的 2d 向量。当我运行我的代码时,编译器什么也不返回!
#include <iostream>
#include <vector>
using namespace std;
vector<vector<double>> ones2d(int m, int n) {
vector<vector<double>> vect;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++){
vect[i][j] = 1;
}
}
return vect;
}
int main(){
vector<vector<double>> vect = ones2d(2,3);
cout << vect[0][0] << endl;
}enter code here
解决方案
该resize()
函数用于将向量的大小调整为指定的大小。我们可以使用它来初始化2d
具有给定默认值的向量:
std::vector<std::vector<double>> ones2d(int m, int n)
{
const int default_value = 1;
std::vector<std::vector<double>> vect(m);
for (int i = 0; i < m; i++)
vect[i].resize(n, default_value);
return vect;
}
或者您可以使用填充构造函数来初始化2d
向量:
std::vector<std::vector<double>> ones2d_2(int m, int n)
{
const int default_value = 1;
return std::vector<std::vector<double>>(m, std::vector<double>(n, default_value));
}
我建议使用第二种解决方案。
请在线尝试
推荐阅读
- sql - 用另一个表 sql 替换列
- javascript - 这个内存泄漏是怎么造成的?
- scala - Scala XML 文字 - 布尔值与字符串
- json - Swift 4 JSON 解析(预期解码数组
但找到了一本字典) - javascript - 将数据从一个渲染的模板复制到一个新的模态中
- c++ - 如何创建与 OpenSSL C++ 输出相比的 OpenSSL 输出以生成单元测试?
- playframework - sbt 测试单个目录
- android - 从 React Native Fragment 后按更新 Android Activity 的 ActionBar 标题
- netsuite - 如何将支持案例附加到销售订单?
- mysql - MySQL - Left Join 耗时太长,如何优化查询?