用STL扫描C++中的二维数组 我想用C++ STL扫描二维数组。我就是这样做的,请告诉我有什么问题 int test; scanf("%d\n",&test); VVI all_integers; while(test--) { all_integers.push_back(VI(istream_iterator<int>(cin),istream_iterator<int>())); }
其中test是后面的行数。您正在混合std::cin和scanf输入,这是有意的吗?仅使用std::cin>>测试有什么问题 无论如何,您的程序的问题是,您一直在读取istream_迭代器,这是输入的结束。你已经试过四次了。显然,输入只有一端。相反,你应该读到一行的末尾。以下是我的解决方案:用STL扫描C++中的二维数组 我想用C++ STL扫描二维数组。我就是这样做的,请告诉我有什么问题 int test; scanf("%d\n",&test); VVI all_integers; while(test--) { all_integers.push_back(VI(istream_iterator<int>(cin),istream_iterator<int>())); },c++,stl,C++,Stl,其中test是后面的行数。您正在混合std::cin和scanf输入,这是有意的吗?仅使用std::cin>>测试有什么问题 无论如何,您的程序的问题是,您一直在读取istream_迭代器,这是输入的结束。你已经试过四次了。显然,输入只有一端。相反,你应该读到一行的末尾。以下是我的解决方案: #include <iostream> #include <vector> #include <iterator> using namespace std; int m
#include <iostream>
#include <vector>
#include <iterator>
using namespace std;
int main(){
int k;
cin >> k; cout << endl << "k = " << k << endl;
ostream_iterator<int> oi(cout, " ");
vector<vector<int> > vpi;
while(k--)
{
vpi.push_back(vector<int>(istream_iterator<int>(cin), istream_iterator<int>()));
cin.clear();
cout<<"k = "<< k <<endl;
copy(vpi[vpi.size()-1].begin(), vpi[vpi.size()-1].end(), oi);
cout<<endl;
}
}
您需要在每个向量之后在Linux上使用
#include <iostream>
#include <vector>
#include <iterator>
using namespace std;
int main(){
int k;
cin >> k; cout << endl << "k = " << k << endl;
ostream_iterator<int> oi(cout, " ");
vector<vector<int> > vpi;
while(k--)
{
vpi.push_back(vector<int>(istream_iterator<int>(cin), istream_iterator<int>()));
cin.clear();
cout<<"k = "<< k <<endl;
copy(vpi[vpi.size()-1].begin(), vpi[vpi.size()-1].end(), oi);
cout<<endl;
}
}