2

現在、総数を表示しようとしています。名前に基づく topicid と testid の。しかし、私はその表示を行うのに問題があります。最初は、すべてのデータを含むベクトルがありました。
例:
user1:name:topic1:test1
user1:name:topic2:test1
user2:name:topic1:test1
user2:name:topic2:test1

ベクトルに複数の重複があるため、次の形式で表示したいと思います: username:name:numofTopics:numofTests
user1:name:2:2
user1:name:2:2

したがって、名前をベクトル内の次の名前と比較し、その要素を singleAcc という新しいベクトルにプッシュすることを考えました。これの目的は、重複する要素を 1 つの要素として表示することです

以下は、データを表示するための私のコードです

        vector<AccDetails> singleAcc;
        for (vector<AccDetails>::iterator itr=accInfo.begin();itr!=accInfo.end()-1; ++itr) {
            if (itr->name == itr[1].name) {
                //cout << (*itr) << endl;
                singleAcc.push_back(*itr);
            }
        }

        for (vector<AccDetails>::iterator itr = singleAcc();itr!=singleAcc();++itr) {
            cout << left
                    << setfill(' ')
                    << setw(20) << itr[0].username
                    << setw(20) << itr[0].name
                    << setw(20) << countTopics(itr->name)
                    << setw(20) << countTests()
                    << endl;            
        }

問題: 最初のベクトル反復で、名前が の最後の要素 bcoz と比較されませんaccDetails.end()-1
重複する要素を 1 つの要素として表示する方法? 2 回目の反復で行っていることは正しいことですか?

誰かがこれで私を助けてくれることを願っています。または、これを行うためのより良い方法はありますか? ありがとう!

4

1 に答える 1