#include <iostream>
#include <vector>
#include <array>
#include <string>
#include <map>
using std::vector; //可変長配列
using std::array; //固定長配列
using std::pair; //ぺあ
using std::map; //マップ
using std::string; //文字列
const int array_size = 5;//定数宣言
int main()
{
int a[array_size] = { 0,1,2,3,4 };
//↑自分で、自分のサイズがわかりません
//for (int i = 0; i < 5; i++) //かたいコーディング ハードコーディング
for (int i = 0; i < array_size; i++)
{
a[i] = i + 2;
}
//array_sizeで配列長を指定して使う
array<int, array_size > arr = {0, 1, 2, 3, 4};
//for(int i = 0; i < arr.size(); i++)
for (int i : arr)//<-配列の中身そのもののコピーを順に参照
{
std::cout << i << std::endl;
}
for (auto& i : arr) //<-配列の中身そのものを順に参照
{
std::cout << i << std::endl;
}
vector<int> varr = { 0,1,2,3,4 };//初期化によりサイズは5になる
std::cout << "size: " << varr.size() << std::endl;
int max = varr.size();
for (auto i = 0; i < max; i++)
{
varr.push_back(i);
}
std::cout << "size: " << varr.size() << std::endl;
for (int i = 0; i < varr.size(); i++)//カウンタを使って添え字でアクセス
{
std::cout << varr[i] << std::endl;
}
vector<double> varr2;
varr2.push_back(0.2);
varr2.push_back(0.4);
varr2.push_back(0.8);
varr2.push_back(0.10);
//struct pairs
//{
// int a;
// string b;
//};
//pairs a0 = { 0,"山田" };
//a0.a に 0
//a0.b に 山田が入っている
vector<pair<int, string>> vpair = { { 0, "山田" },{ 5, "佐藤" },{ 8, "吉田" },{ 10, "田村" },{ 15, "長曾我部" } };
//std::cout << a0.second << "さんは" << a0.first << "番です" << std::endl;
for (auto& v : vpair)
{
std::cout << v.second << "さんは" << v.first << "番です" << std::endl;
}
//連想配列
map<string, int> vmap = { { "山田" ,0},{ "佐藤",5 },{"吉田",8 },{ "田村", 10 },{ "長曾我部" ,15} };
std::cout << vmap["山田"] << std::endl;
std::cout << vmap["長曾我部"] << std::endl;
return(0);
}