最近在学习BP神经网络,每一层的节点数可能不一样,但是想把所有节点都置于一个数组里,网上没找到理想的解决方案,就自己试了一下,发现vector天然支持每一行元素数目不等。
贴代码:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<vector<int>> vv;
vector<int> v1 = { 1,2,3 };
vector<int> v2 = { 4,5 };
vector<int> v3 = { 6,7,8,9 };
//二维数组添加一维数组作为新的行
vv.push_back(v1);
vv.push_back(v2);
vv.push_back(v3);
//使用迭代器遍历输出非等长二维数组
for (vector<vector<int>>::iterator itvv = vv.begin(); itvv != vv.end(); itvv++)
{
for (vector<int>::iterator itv = (*itvv).begin(); itv != (*itvv).end(); itv++)
{
cout << *itv << " ";
}
cout << endl;
}
//指定行可以新添元素
vv[1].push_back(1);
for (vector<vector<int>>::iterator itvv = vv.begin(); itvv != vv.end(); itvv++)
{
for (vector<int>::iterator itv = (*itvv).begin(); itv != (*itvv).end(); itv++)
{
cout << *itv << " ";
}
cout << endl;
}
//依旧可以使用vv[2][3]访问指定元素
cout << vv.at(2).at(3) << endl;
//超界元素会提示异常
//cout << vv.at(2).at(4) << endl;
system("pause");
return 0;
}