如何将二维数组赋值给vector

一维数组:
vector<int> a;
int b[5] = {1,2,3,4,5};
a.push_back(b);

二维数组:
b[5][6] = {1,2,3,4,5,6...27,28,29,30};
如果a的长度给定了,即vector<vector<int> > a(5,vector<double>(6));


for(int i = 0; i < 5;++i){
    for (int j = 0; j < 6; ++j){
        a[i][j]=b[i][j];
    }
}
在C++中,给`vector`二维数组赋值有多种方法,以下是一些常见的方式: #### 初始化时指定大小并赋值 创建一个指定大小的二维`vector`数组,并将元素初始化为特定值。 ```cpp #include <iostream> #include <vector> int main() { // 创建一个3行4列的二维vector数组,每个元素初始化为5 std::vector<std::vector<int>> vec(3, std::vector<int>(4, 5)); // 输出数组 for (const auto& row : vec) { for (int val : row) { std::cout << val << " "; } std::cout << std::endl; } return 0; } ``` #### 逐行逐元素赋值 先创建一个空的二维`vector`数组,然后通过循环逐行逐元素赋值。 ```cpp #include <iostream> #include <vector> int main() { int m = 3; // 行数 int n = 4; // 列数 std::vector<std::vector<int>> array(m); for (int i = 0; i < m; i++) { array[i].resize(n); for (int j = 0; j < n; j++) { array[i][j] = i * j; } } // 输出数组 for (const auto& row : array) { for (int val : row) { std::cout << val << " "; } std::cout << std::endl; } return 0; } ``` #### 使用`push_back`方法赋值 先创建一维`vector`,将元素添加到一维`vector`中,再将一维`vector`添加到二维`vector`里。 ```cpp #include <iostream> #include <vector> int main() { std::vector<std::vector<float>> bk; std::vector<float> MM; MM.push_back(1); MM.push_back(22); MM.push_back(3); MM.push_back(6); bk.push_back(MM); // 输出数组 for (const auto& row : bk) { for (float val : row) { std::cout << val << " "; } std::cout << std::endl; } return 0; } ``` #### 从用户输入赋值 通过循环从用户输入读取值并赋值给二维`vector`数组。 ```cpp #include <iostream> #include <vector> int main() { int m = 3; // 行数 int n = 3; // 列数 std::vector<std::vector<int>> array; std::vector<int> v; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { int value; std::cin >> value; v.push_back(value); } array.push_back(v); v.clear(); } // 输出数组 for (const auto& row : array) { for (int val : row) { std::cout << val << " "; } std::cout << std::endl; } return 0; } ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值