尝试在结构中调整向量大小时出现“无类类型”错误

时间:2018-10-05 21:09:14

标签: c++ function vector data-structures

我正在用c ++编写代码以构建晶格,然后计算点之间的能量以运行某些MD模拟。

我在一个连续的主函数中执行此操作,但想拆分为子例程,以便我可以更改单元格的数量,仅构建该单元格的晶格,然后仅计算所需晶格数量即可计算所需能量b / w职位。

我构建的晶格使用3个for循环将x,y和z位置写入其各自的向量。我需要将三个向量从“格”函数传递到“能量”函数,并确定我会使用这三个向量的结构来实现。

在尝试使新结构正常工作时,我已经注释掉了大部分代码,这是代码的一部分。

#include <iostream>
#include <fstream>
#include <string>
#include <stdio>
#include <math>
#include <vector>
using namespace std;

 //use structure so the x, y, and z vectors can be passed as a return from the lattice function

struct Coordinates{
  vector<double> xValues();
  vector<double> yValues();
  vector<double> zValues(); }; 


//First Function, of type Coordinates
Coordinates makeLattice(int xCell,int yCell,int zCell)  
{
// Initialize a Lattice   

  Coordinates xyz; //creating an object of type:coordinates 'xyz'

  int nCell = xCell*yCell*zCell; //number of cells in system
  int nAtoms = 4*nCell;
  cout<<"number of cells= "<<nCell<<" and number of atoms = " 
  <<nAtoms<<"\n";

  xyz.xValues.resize(nAtoms);
  xyz.yValues.resize(nAtoms);
  xyz.zValues.resize(nAtoms);

  //a whole bunch of commented out code
return xyz;
}

编译时出现错误,因为“ xyz.coordinates :: xValues没有类类型”,而其他两个向量也有相同的错误。有人可以告诉我使用结构时我缺少什么吗?

0 个答案:

没有答案