C++Primer学習ノート(1)——vectorの使い方


本を何日も手に入れて、今日初めて勉強のノートを書きました.vector反復器の使い方が見えましたが、markが必要です.
vectorタイプ
まずvectorはクラステンプレートです.テンプレートを使用して、クラス定義または関数定義を作成し、さまざまなデータ型で使用できます.したがって、vector、vector、vector、vectorなど、さまざまなタイプのvectorを保存することができます.もちろん、以下のコードでカスタマイズできます.
typedef example
{
	int element1;
	char element2[10];
}definetype;
vector<definetype> a;

初期化vector
vectorを初期化するには、次の4つの方法があります.
vector<T> v1;//vector     T   ,      ,v1  
vector<T> v2(v1);//v2 v1     
vector<T> v3(n,i);//v3   n   i    (C++       ,std::string a(10,'a');a="aaaaaaaaaa")
vector<T> v4(n);//v4          n   ,  n   。

vector要素の操作
ここでは反復器操作のみを書き,下付き操作は省略する.C++中反復器はその連続性を実現するために,非連続メモリ空間を申請する方法を採用した.今のところわかりませんが
反復器の定義と宣言
反復器(iterator)は、コンテナ内の要素を確認し、要素を巡回するデータ型です.
次のように宣言してください.
vector<T>::iterator iter;//T means the data type

vector反復器の自己増加と解参照演算
反復器タイプは、反復器が指す要素に対して、逆参照オペレータ(*)を使用してアクセスできます.
*iter=0;//   0,          

const_を使用する場合iterator、指す要素の値は変更されません.つまりconst_は使用できません.iteratorが付与します.
const_をiteratorはconstのiteratorと混同して、前者は要素を書くことができなくて、後者の値は変えることができません.
反復適用の例
#include <iostream>
#include <string>
#include <vector>
#include <functional>
#include <algorithm>

using namespace std;

int main()
{
   int n;
   string a;
   vector<string> vec;
   cin>>n;
   while(n--)
   {
       cin>>a;
       vec.push_back(a);
   }
   sort(vec.begin(),vec.end(),less<string>());
   cout<<endl;
   for(vector<string>::iterator iter=vec.begin();iter!=vec.end();++iter)
   {
       cout<<*iter<<endl;
   }
}

上記プログラムでは,n個の文字列を入力し,文字列を昇順に並べ替えて出力する機能を実現した.
次のようになります.
1.stringタイプは長さの変化する文字列をサポートし、C++標準ライブラリは文字の保存に関連するメモリの管理と、さまざまな有用な操作を提供します.stringタイプの付与には、次の4つの方法があります.
string v1;//string      ,v1  
string v2(v1);//v2 v1     
string v3("aaa");// v3              
string v4(n,'c');// v4      'c' n   

2.sortソート、less()昇順
3.*iterは、現在の反復器が指すコンテナ要素を表します.
4.反復器は演算操作を行うことができる(本例の自己増加のように)