c ++ vektor总是给0

时间:2011-11-21 20:42:08

标签: c++ vector

我的first.h:

class skaiciavimas
{
public:
    vector<int> vekto[2];
    skaiciavimas();
    ~skaiciavimas();
....

我的first.cpp

    #include "skaiciavimas.h"

skaiciavimas::skaiciavimas()
{   int i;
    for(i=0;i<2;i++)
    vekto[i].resize(3);
}
void skaiciavimas::showst(vector<int> st,int i)
{   
    vekto[i].at(0)=st.at(0);
    vekto[i].at(1)=st.at(1);
    vekto[i].at(2)=st.at(2);
    cout<<vekto[1].at(0)<<vekto[0].at(0)<<endl;

}
void skaiciavimas::tikrinimas ()
{
    cout<<vekto[1].at(0)<<vekto[0].at(0)<<endl;// gives always 0,0
....

我称之为shwst函数的第二类 second.cpp:

vandenynas::vandenynas()
{
    vektorV.resize(3);
}
void vandenynas::duomenys (int i, int a, int a0) 
{
        switch (i)
    {
        case 0:
            vektorV.at(0)=a-a0;
            break;
        case 1:
            vektorV.at(1)=a-a0;
            break;
        default:
            vektorV.at(2)=a-a0;
            break;

    }
 sk.showst(vektorV,0);
}

我从我的主要电话打来的tikrinimas功能:

sk.tikrinimas();

为什么这一行

cout<<vekto[1].at(0)<<vekto[0].at(0)<<endl;

alvays给了我00,如何纠正这个以获得在showst中分配的严格数字

P.S sk是我的班级(第一个sk;)

有一种名为duomenys和tikrinimas:

vandenynas vand;
skaiciavimas sk;
int main() 
{
    int i,a,a0,t;
    int j=1;

    while (j<3)
    {
        for (i=0;i<3;i++)
        {   
          cout<<"enter "<<kas<<kint(i)<<" kordinates"<<endl;
          cout<<kint(i)<<"0 = ";
          cin>>a0;
          cout<<kint(i)<<" = ";
          cin>>a;
          cout<<endl;
          if (j==1)
              vand.duomenys(i,a,a0);            
         }
     j++;
    }
    sk.tikrinimas();
...

1 个答案:

答案 0 :(得分:1)

      cin>>a0;

您读取了局部变量的输入,但从不使用这些值调用sk.showst。它的成员仍然是默认值,这应该不足为奇。