0

ベクトルを繰り返し処理しようとしていますが、特定の要素で停止する必要があります。これは、ベクトル内の特定の数の要素のみをカウントしたいためです

たとえば、構造体 (関連性) のベクトルがあり、ベクトルの最初の 2 つの要素を計算する必要があります (この数はユーザー入力によって異なります)。

for(std::vector<Relevance>::const_iterator it = RelStructs.begin(); it < RelStructs[2]; ++it)
{

 cout << "\nDesc2: " << it->desc2 << "\n";  // desc2 is a variable within the Relevance struct

 cout << "Relevance2: " << it->relevance2 << "\n\n"; // relevance2 is a variable within the Relevance struct

このコードが機能しないことはわかっていますが、このようなことをしようとしています。ありがとう

4

4 に答える 4

2

シンプル、必要な数を追加するだけbegin()

for (std::vector<Relevance>::const_iterator it = RelStructs.begin(); 
    it < RelStructs.begin() + 2; ++it)
{
于 2013-09-15T18:47:03.390 に答える
1

シーケンスを繰り返すだけv.begin(), v.begin() + std::min<std::size_t>(count, v.size())です:

for (std::vector<Relevance>::const_iterator it(RelStructs.begin()),
     end(it + std::min<std::size_t>(RelStructs.size(), count);
     it != end; ++it) {
    ...
}
于 2013-09-15T18:47:56.767 に答える
1

userEnteredNumberがベクトルを反復する必要がある数である場合、次のように動作するはずです。

for (int i = 0; userEnteredNumber < RelStructs.size() && i < userEnteredNumber; i++)
{
    std::vector<RelStructs> v = RelStructs[i];
    // do something with v.
}
于 2013-09-15T18:51:07.483 に答える