| Код | #include <vector> #include <string> #include <iostream> #include <fstream>
using std::vector; using std::string; using std::fstream;
void read(fstream& stream_, vector<string>& vector_) { string str; while (!stream_.eof()) { getline(stream_,str); vector_.push_back(str); } }
size_t get(const string& str) { unsigned char hash[256]={0}; size_t res=0; for (string::const_iterator i=str.begin(); i!=str.end(); ++i) ++hash[*i]; for (size_t i=0; i<256; ++i) if (hash[i]) ++res; return res; }
void erase_max(vector<string>& vector_) { vector<string>::iterator deleted, begin=vector_.begin(); size_t max_count=0, old; for (; begin!=vector_.end(); ++begin) if ((old=get(*begin))>max_count) max_count=old, deleted=begin; vector_.erase(deleted); }
int main(int argc, char* argv[]) { fstream stream_(argv[1],std::ios_base::in); vector<string> vector_; read(stream_,vector_); erase_max(vector_); for (vector<string>::const_iterator i=vector_.begin(); i!=vector_.end(); ++i) std::cout<<*i<<std::endl; return 0; }
|
вызов из ком. строки <программа> <имя файла>
код лично проверял - все работает (будешь должен ) только не говори "напишите попроще" и т д здесь все вроде не сложно, единственное - это применение контейнеров, но т к ты используешь VC, то прокатит |