C+中的二维向量迭代+; 我是C++初学者。如何在C++ STL?中迭代二维向量 int main() { vector< vector<int>> vec; for(int i=0;i<vec.size();i++ cout<<vec[i]<<" "<<endl; } intmain() { 向量vec; 对于(int i=0;i
您可以这样迭代C+中的二维向量迭代+; 我是C++初学者。如何在C++ STL?中迭代二维向量 int main() { vector< vector<int>> vec; for(int i=0;i<vec.size();i++ cout<<vec[i]<<" "<<endl; } intmain() { 向量vec; 对于(int i=0;i,c++,stl,C++,Stl,您可以这样迭代 int main() { vector< vector<int>> vec; for(int i=0;i<vec.size();i++) { for(int j=0;j<vec[i].size();j++) cout<<vec[i][j]<<" "; cout<<endl; } } intmain() { 向量vec; 对
int main()
{
vector< vector<int>> vec;
for(int i=0;i<vec.size();i++)
{
for(int j=0;j<vec[i].size();j++)
cout<<vec[i][j]<<" ";
cout<<endl;
}
}
intmain()
{
向量vec;
对于(int i=0;i您可以这样迭代
int main()
{
vector< vector<int>> vec;
for(int i=0;i<vec.size();i++)
{
for(int j=0;j<vec[i].size();j++)
cout<<vec[i][j]<<" ";
cout<<endl;
}
}
intmain()
{
向量vec;
对于(int i=0;i虽然带索引的解决方案肯定是正确的,但以下带rangefor
循环的变体更为现代。它的灵活性稍差,但仅使用这些值就可以完美地工作,并且出错的机会更小
intmain(){
std::vec;
//向vec添加一些数据
对于(const auto&v:vec){//重要的是&否则复制内部向量
for(const auto&i:v){
std::cout虽然带索引的解决方案肯定是正确的,但以下带rangefor
循环的变体更为现代。它的灵活性稍差,但仅使用这些值就可以完美地工作,并且出错的机会也更小
intmain(){
std::vec;
//向vec添加一些数据
对于(const auto&v:vec){//重要的是&否则复制内部向量
for(const auto&i:v){
std::cout您可以这样使用
std::vector<std::vector<int>> vecOFvec{{1,2},{3,4,5},{6,7,8,9}};
for(const auto& elemOuter:vecOFvec){
std::cout<<"\n";
for(const auto& elemInner:elemOuter)
std::cout<<elemInner<<" ";
}
你可以这样用
std::vector<std::vector<int>> vecOFvec{{1,2},{3,4,5},{6,7,8,9}};
for(const auto& elemOuter:vecOFvec){
std::cout<<"\n";
for(const auto& elemInner:elemOuter)
std::cout<<elemInner<<" ";
}
用于在阵列中创建二维Mattrix
int matt[R][C];
迭代2D数组
for(int r=0; r < R; r++){
for(int c=0; c<C;c++)
cout << matt[r][c];
cout << endl;
}
for(int r=0;r for(int c=0;c允许在数组中使用2D Mattrix
int matt[R][C];
迭代2D数组
for(int r=0; r < R; r++){
for(int c=0; c<C;c++)
cout << matt[r][c];
cout << endl;
}
for(int r=0;r for(int c=0;cfor(int i=0;i这能回答你的问题吗?如果没有必要的话,你实际上不应该使用向量。你得到了一个双间接寻址,因为向量数据存储在堆中…所以有很多内存访问操作。这对(int i=0;我可以回答你的问题吗?如果没有必要,实际上不应该使用向量向量。因为向量数据存储在堆中,所以有很多内存访问操作。这样做效率不高,你缺少一个结束)
在第一个处,对于
。如果您不想将第二个放入自己的块中,我建议您至少缩进该的第二个的内部。您缺少一个结束)
在第一个for
。如果您不想将第二个for
放入自己的块中,我建议您至少缩进第二个的内部主体。内部循环上的&
仍然是合理的。此代码块现在可以在任何库(或类似库)中重复使用容器来打印任何包含运算符的内容,这是正确的,但我认为对于标量类型,按值获取实际上更有效。但是当然&
是一个很好的默认值,特别是如果我们想进行更改,我总是这样做。一天结束时,很大程度上取决于编译器将如何进行优化。对于一个常量
引用和一个没有改变的小副本,行为是相同的,因此一个好的编译器可能会产生相同的输出。内部循环上的&
仍然是合理的。这段代码现在可以被任何库(或类似库)重用容器来打印任何包含运算符的内容,这是正确的,但我认为对于标量类型,按值获取实际上更有效。但是当然&
是一个很好的默认值,特别是如果我们想进行更改,我总是这样做。一天结束时,很大程度上取决于编译器将如何进行优化。对于一个const
引用和一个没有改变的小副本,行为是相同的,因此一个好的编译器可能会产生相同的输出。