国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ php教程 PHP開發(fā) ベクトルの消去操作

ベクトルの消去操作

Nov 22, 2016 pm 03:24 PM
erase

最近、本を読んでいるときに偶然詳細を発見しました。それは、vector の消去操作です。この消去操作には 2 つの形式があることは誰もが知っています。(1) 単一の要素を削除します。パラメーターは反復(fù)変數(shù)です。(2) 間隔要素を削除します。パラメーターは begin と end です。詳細は、単一の要素が削除されたときに発生する具體的な內(nèi)容です。

例: このように初期化されたベクトルがあります。vector va{0,1,2,2,3,4,5}、ベクトル內(nèi)の 2 に等しい要素を削除します。

通常、コードは次のように書かれます:

#include <vector>
 #include <iostream>

int main() {     std::vector<int> va{ 1,2,3,4,4,5,6 };     std::vector<int> vb(va);     for (auto i = va.begin();i != va.end(); i++)     {         if (*i == 4)         {             i = va.erase(i);         }     }     for (auto i : va) { std::cout << i << "  "; }     return 0; }

一見何も問題はありませんが、結(jié)果は予想外です

ベクトルの消去操作

なぜこのような結(jié)果になるのでしょうか?よく考えてみると、if 條件が成立すると、ベクトルは削除操作を?qū)g行し、條件を満たすベクトル內(nèi)の要素を削除するのがポイントです。消去操作を?qū)g行すると、戻り値は現(xiàn)在削除されているイテレータの次の位置を表します。その後、ループが再度繰り返されると、イテレータは 1 つ後ろに移動し、同じ要素は存在しません。削除されました。

正しいスペルを添付します:

#include <vector> #include <iostream>

int main() {     std::vector<int> va{ 1,2,3,4,4,5,6 };     std::vector<int> vb(va);     auto iter = vb.begin();     while(iter!=vb.end())     {         if (iter != vb.end())         {             if (*iter == 4)             {                 iter = vb.erase(iter);             }             else 
            { iter++; }         }     }     for (auto j : vb)     {         std::cout << j << "  ";     }     return 0; }
#include <vector>  #include <iostream>


int main() {     std::vector<int> va{ 1,2,3,4,4,5,6 };     for (auto i = va.begin();i != va.end(); )     {         if (*i == 4)         {             i = va.erase(i);         }         else { i++; }     }     for (auto i : va)     {         std::cout << i << "  ";     }     return 0; }


このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)