以下の内容はhttps://minus9d.hatenablog.com/entry/20120611/1339422594より取得しました。


vectorとsetを相互に変換


STLvectorとsetは、コンストラクタを使うと互いに簡単に変換することができる。

#include <iostream>
#include <vector>
#include <set>

using namespace std;

void printVector(vector<int> &vec){
    cout << "size = " << vec.size() << endl;
    for(int i = 0; i < vec.size(); ++i){
        cout << vec[i] << ", ";
    }
    cout << endl << endl;
}

void printSet(set<int> &s){
    cout << "size = " << s.size() << endl;
    for(set<int>::iterator it = s.begin();
        it != s.end();
        ++it){
        cout << *it << ", ";
    }
    cout << endl << endl;
}

int main(void)
{
    set<int> s;
    s.insert(30);
    s.insert(10);
    s.insert(70);
    s.insert(50);
    printSet(s);

    // set -> vector
    vector<int> vec(s.begin(), s.end());
    printVector(vec);

    // vector -> set
    set<int> s2(vec.begin(), vec.end());
    printSet(s2);
    
    return 0;
}

setコンテナの変数sをもとに、vectorコンテナの変数vecを生成。そして、vecをもとに、setコンテナの変数s2を作成した。
出力結果は以下の通り。

size = 4
10, 30, 50, 70, 

size = 4
10, 30, 50, 70, 

size = 4
10, 30, 50, 70, 



以上の内容はhttps://minus9d.hatenablog.com/entry/20120611/1339422594より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14