如何找到二维向量的大小?到目前为止,我有以下不编译的代码。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector < vector <int> > v2d;
for (int x = 0; x < 3; x++)
{
for (int y = 0; y < 5; y++)
{
v2d.push_back(vector <int> ());
v2d[x].push_back(y);
}
}
cout<<v2d[0].size()<<endl;
cout<<v2d[0][0].size()<<endl;
return 0;
}
答案 0 :(得分:27)
要获得 v2d 的大小,只需使用 v2d.size()即可。 对于 v2d 中每个向量的大小,请使用 v2d [k] .size()。
注意:要获得v2d
的整个大小,请总结每个向量的大小,因为每个向量都有自己的大小。
答案 1 :(得分:10)
您的代码中存在一些错误,我已在下面修复并发表了评论。
vector < vector <int> > v2d;
for (int x = 0; x < 3; x++)
{
// Move push_back() into the outer loop so it's called once per
// iteration of the x-loop
v2d.push_back(vector <int> ());
for (int y = 0; y < 5; y++)
{
v2d[x].push_back(y);
}
}
cout<<v2d.size()<<endl; // Remove the [0]
cout<<v2d[0].size()<<endl; // Remove one [0]
v2d.size()
返回2D矢量中的矢量数。 v2d[x].size()
返回“row”x
中的向量数。如果您知道向量是矩形的(所有“行”具有相同的大小),则可以使用v2d.size() * v2d[0].size()
获得总大小。否则你需要遍历“行”:
int size = 0;
for (int i = 0; i < v2d.size(); i++)
size += v2d[i].size();
作为更改,您还可以使用iterators:
int size = 0;
for (vector<vector<int> >::const_iterator it = v2d.begin(); it != v2d.end(); ++it)
size += it->size();
答案 2 :(得分:9)
vector<vector<int>>
没有整体大小,因为其中的每个向量都有一个独立的大小。您需要将所有包含的向量的大小相加。
int size = 0;
for(int i = 0; i < v2d.size(); i++)
size += v2d[i].size();
答案 3 :(得分:-1)
swal({
title: "Are you sure?",
text: "You are going to delete <b>"+ name +"</b> address. ",
icon: "warning",
buttons: true,
dangerMode: true,
})