我不能让这该死的东西正常工作。问题是,如果我要输入 2 个数字,我实际上必须输入 3。有什么问题?
namespace MT
{
template<class IIT, class OIT>
OIT copy_n(IIT iitBegin, size_t szCount, OIT oitBegin)
{
for(size_t szI = 0; (szI < szCount); ++szI)
{
*oitBegin++ = *iitBegin++;
}
return oitBegin;
}
};
int main()
{
vector<int> vNumbers;
vector<char> vOperators;
int iNumCount = 0;
int iNumOperators = 0;
cout << "Enter number of number(s) :) :\n";
cin >> iNumCount;
cout << "Enter number of operator(s) :\n";
cin >> iNumOperators;
int iNumber;
cout << "Enter the " << iNumCount << " number(s):\n";
MT::copy_n(istream_iterator<int>(cin), iNumCount, back_inserter(vNumbers));
char cOperator;
cout << "\nEnter the " << iNumOperators << " operator(s):\n";
MT::copy_n(istream_iterator<char>(cin), iNumOperators, back_inserter(vOperators));
copy(vNumbers.begin(), vNumbers.end(), ostream_iterator<int>(cout, " "));
cout << endl;
copy(vOperators.begin(), vOperators.end(), ostream_iterator<char>(cout, " "));
cout << endl;
return 0;
}