0
#include<iostream>
#include<vector>
using namespace std;
class t{
    public:
        t();
        void updateSize();
        int getSize();
        void insert();
        int get(int a);
    private:
        int size;
        vector<int> v;

};

t::t(){
    size =0;
}
void t::updateSize(){
    size++;
}
int t::getSize(){
    return size;
}
int t::get(int a){
    return v[a];
}
 void t::insert(){
    v.push_back(size);

    ++size;
}

int main(){
   t xa;
   xa.insert();
   xa.insert();
   xa.insert();
       xa.insert();
   cout<<xa.get(3);//expect to output 3 but instead outputs 0


   return 0;
}

このコードは、insertを呼び出すたびにサイズをインクリメントし、そのサイズの値を持つ整数を、そのサイズの同じインデックスのベクトルに入れることになっています。しかし、何らかの理由で、更新されたサイズが私のベクトルに入れられません。

4

2 に答える 2

4

3 つの要素を挿入していますが、4 番目を読んでいます (インデックスは 0 ベースであるため)。

于 2012-12-06T07:07:01.077 に答える
0

投稿したプログラムは「3」を出力します。コードを読んで証明します。

于 2012-12-06T07:15:27.003 に答える