0 c++
我需要帮助解决我遇到的c ++语法问题.
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <fstream>
#include <stdlib.h>
#define RANGE 15.0
#define NUMBINS 15
struct _freq
{
float ini, end;
int q;
};
typedef _freq freq;
vector<freq> alphaCutoffSelector(vector<atom> A,string _i,string _j,float r=RANGE,
int b=NUMBINS);
vector<freq> alphaCutoffSelector(vector<atom> A,string _i,string _j,float range,
int bins)
{
vector<freq> F;
freq *f;
double D;
for (int i=0;i<bins;i++)
{
f=new freq;
f->ini=i*(range/bins);
f->end=f->ini+range/bins;
f->q=0;
F.push_back(*f);
}
for(int i=0;i<A.size();i++)
{
for (int j=0;j<A.size();j++)
{
for(int k=0;k<bins;k++)
{
if(i!=j && A[i].getResName()==_i &&
A[j].getResName()==_j && A[i].getAtomName()=="CA" &&
A[j].getAtomName()=="CA")
{
D = (A[j].getX()-A[i].getX())*(A[j].getX()-A[i].getX()) + (A[j].getY()-A[i].getY())*(A[j].getY()-A[i].getY()) + (A[j].getZ()-A[i].getZ())*(A[j].getZ()-A[i].getZ());
if (D > (k*range/bins)*(k*range/bins) && D <= ((k+1)*range/bins)*((k+1)*range/bins))
{
F[k].q=F[k].q+1;
}
}
}
}
}
return F;
}
vector<freq> C;
string RN[] = {"ALA","ARG","ASN","ASP","CYS","GLU","GLN","GLY","HIS","ILE","LEU","LYS","MET","PHE","PRO","SER","THR","TRP","TYR","VAL"};
int i,j;
for (i=0;i<20;i++)
{
for (j=0;j<20;j++)
{
if (i<=j)
{
C=alphaCutoffSelector(atoms,RN[i],RN[j]);
cout <<RN[i] <<"-" <<RN[j];
for (int n=0;n<NUMBINS;n++)
{
cout <<" " <<C[n].q;
}
cout << endl;
C.clear();
}
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
尝试使用g ++ -c try.cc编译它会导致以下错误消息:
try.cc:1:error:在'<'标记之前的预期构造函数,析构函数或类型转换.
我该怎么办??
[我试过 - Ed.]