2016-05-12 5 views
-1

私は2次元ベクトルvector<vector<int> > det;を持っています。最後の値または最後の値を別の2次元ベクトルvにpush_backのd値を割り当てたいと思います。
これは私です試しましたが、v = *(det.rbegin());ですが、エラーが表示されます。それを行う正しい方法は何ですか?
エラーメッセージ:非スカラ型への変換「のstd ::ベクトル」「のstdは::ベクトル>」あなたの2D配列の最後のエントリは、2次元配列、型ベクターのすなわち<ベクトル<ないイテレータを2Dベクトルに引き渡し、その値を別の2Dベクトルに割り当てる

+1

エラーメッセージを読んでください。 – user2079303

+0

@ user2079303私はすでにエラーメッセージを読んだが、 'std :: vector>'はどういう意味ですか? – user6291111

+0

コード全体を入力してください。 –

答えて

1

を要求しましたint>>ではなく、ベクトル< int>の型です。このように

それはタイプの別の変数

ベクトル<ベクトル< int型に割り当てることはできません>>

これは正常に動作します:

#include<iostream> 
#include<vector> 

int main(){ 
    std::vector<std::vector<int> > det, det2; 
    std::vector<int> vector1, vector2, vector3; 

    vector1.push_back(3); 
    vector1.push_back(4); 
    vector1.push_back(5); 

    vector2.push_back(13); 
    vector2.push_back(14); 
    vector2.push_back(15); 

    vector3.push_back(113); 
    vector3.push_back(114); 
    vector3.push_back(115); 

    std::vector<int> member_of_2darray; 

    det.push_back(vector1); 
    det.push_back(vector2); 
    det.push_back(vector3); 

    det2.push_back(det.back()); 

    std::cout<<det2[0][2]<<std::endl; // returns 115 

    //last:element 
    std::cout<<det.back().back()<<std::endl; 


} 

編集:あなたはdeperatelyイテレータを使用する場合:ここに実例があります:

#include<iostream> 
#include<vector> 

int main(){ 
    std::vector<std::vector<int> > det, det2; 
    std::vector<int> vector1, vector2, vector3; 

    std::vector<std::vector<int> >::iterator it; 

    vector1.push_back(3); 
    vector1.push_back(4); 
    vector1.push_back(5); 

    vector2.push_back(13); 
    vector2.push_back(14); 
    vector2.push_back(15); 

    vector3.push_back(113); 
    vector3.push_back(114); 
    vector3.push_back(115); 

    std::vector<int> member_of_2darray; 

    det.push_back(vector1); 
    det.push_back(vector2); 
    det.push_back(vector3); 

    it = det.end(); 

    det2.push_back(*(it-1)); 

    std::cout<<det2[0][2]<<std::endl; //output: 115 


} 
+0

detの最後の要素の値を抽出したいが、detのサイズは分かっていない。 – user6291111

+0

det.back()の最後の要素。または、イテレータを使用して、最後の要素は*(it - 1)です。 –

+0

問題は戻り値の型である*(det.rbegin())でした。答えはベクトルでしたが、提供された例は決して答えに関係しません。 – user6291111