荒屋敷智也のブログ

【C++備忘録】Visual Studio2022 STL

当ブログではアフィリエイト広告を利用しています

STLとは?

スタンダードテンプレートライブラリの略。c++言語の標準的なライブラリ。

vector

通常の配列は、サイズを確保するため静的配列と呼ばれている。
vectorは、サイズが可変のため動的配列と呼ばれている。

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    vector<int> v1;
    v1.push_back(1);
    v1.push_back(2);
    v1.push_back(3);

    for (int i = 0; i < v1.size(); i++) {
        cout << v1[i] << endl;
    }
}

list

双方向連結リストで、要素の途中に値を追加することが可能な配列。

#include <iostream>
#include <list>

using namespace std;

int main()
{
    list<int> li;
    li.push_back(1);
    li.push_back(2);
    li.push_back(3);

    list<int>::iterator itr;
    itr = li.begin();
    itr++;
    li.insert(itr, 4);

    for (itr = li.begin(); itr != li.end(); itr++) {
        cout << *itr << endl; 
    }
}

set

データの重複が発生しないデータの集まりを作れる機能

#include <iostream>
#include <set>

using namespace std;

int main()
{
	set<string>names;

	names.insert("Tom");
	names.insert("Mike");
	names.insert("Mike");
	names.insert("Bob");

	set<string>::iterator itr;

	for (itr = names.begin(); itr != names.end(); itr++) {
		cout << *itr << endl;
	}
}

スタックとキュー

なるほど・・・データの取り出し方法はこれを使えば切り替えられるのか・・・いいね

#include <iostream>
#include <stack>
#include <queue>

using namespace std;

int main()
{
	stack<int>stk;
	queue<int>que;

	int data[] = { 1,2,3 };

	for (int i = 0; i < 3; i++) {
		stk.push(data[i]);
		que.push(data[i]);
	}

	cout << "stack : ";
	while (!stk.empty()) {
		cout << stk.top() << "";
		stk.pop();
	}
	cout << endl;

	cout << "queue : ";
	while (!que.empty()) {
		cout << que.front() << "";
		que.pop();
	}
}