|
|
|
| Есть код из учебника для нахождения анаграмм, но при компиляции выдается :
g++.exe -x c++ -c C:\C++\anagram\anag.cpp -o C:\C++\anagram\anag.o -Wall -fpermissive
C:\C++\anagram\anag.cpp: In function `int main()':
C:\C++\anagram\anag.cpp:26: no match for call to `(const string) ()'
C:\C++\anagram\anag.cpp:26: no match for call to `(const string) ()'
Failure
Сам код:
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <map>
using namespace std;
int main(){
int n;
char buff[80];
string sbuff;
multimap<string,string> an;
multimap<string,string>::iterator im,ani,ane;
ifstream infile("diction.txt");
while(1){
infile.getline(buff, sizeof(buff));
if(infile.eof()) break;
sbuff=buff;
sort(sbuff.begin(),sbuff.end());
an.insert(pair<string,string>(sbuff,buff));
}
ani=ane=an.begin();
n=0;
do{
while(++ane!=an.end() &&
(*ane).first() ==(*ani).first()) n++;
if(n){
for(im=ani;im!=ane;im++)
cout << (*im).second << endl;
n=0; cout << endl;
}
ani=ane;
} while(ane!=an.end());
infile.close();
} | |
|
|
|
|
|
|
|
для: Rasty
(09.07.2009 в 14:53)
| | Текст точно скопирован?
(*ane).first() ==(*ani).first()) n++; |
*ane дает string, а у string нет метода first(), аналогично и про ani | |
|
|
|