(2019年4月14日)
■使用ソフト
・Visual Studio Community 2019
■言語
・C/C++
■Windows SDK バージョン
・10.0.17763.0
※Windows SDK バージョンの変更方法
■手順
以下の2種類の方法を記載
emplace_back
resize
<emplace_back>
1.基本的には以下の流れ参照
【C++】 メッセージボックスの作成
2.C++ファイル(.cpp)を以下のとおり変更する。
#include <windows.h>
#include <wchar.h>
#include <vector>
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
WCHAR wcText[256];
/*data[0][0]=3, data[1][0]=3, data[0][1]=3, data[1][1]=3で初期化
data(X, std::vector<int>(Y, S))→data[X][Y]全てSで初期化*/
std::vector<std::vector<int> > data(2, std::vector<int>(2, 3));
data[0].emplace_back(4);//data[0][2]=4を追加
data[0].emplace_back(5);//data[0][3]=5を追加
//data[2][0]=8, data[2][1]=8を追加
data.emplace_back(std::vector<int>(2, 8));
swprintf(wcText, 256, L"%d %d %d %d %d %d %d %d", data[0][0], data[1][0], data[0][1], data[1][1],
data[0][2], data[0][3], data[2][0], data[2][1]);
MessageBox(NULL, wcText, L"vector動的2次元配列", MB_OK);
return 0;
}
#include <wchar.h>
#include <vector>
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
WCHAR wcText[256];
/*data[0][0]=3, data[1][0]=3, data[0][1]=3, data[1][1]=3で初期化
data(X, std::vector<int>(Y, S))→data[X][Y]全てSで初期化*/
std::vector<std::vector<int> > data(2, std::vector<int>(2, 3));
data[0].emplace_back(4);//data[0][2]=4を追加
data[0].emplace_back(5);//data[0][3]=5を追加
//data[2][0]=8, data[2][1]=8を追加
data.emplace_back(std::vector<int>(2, 8));
swprintf(wcText, 256, L"%d %d %d %d %d %d %d %d", data[0][0], data[1][0], data[0][1], data[1][1],
data[0][2], data[0][3], data[2][0], data[2][1]);
MessageBox(NULL, wcText, L"vector動的2次元配列", MB_OK);
return 0;
}
配列イメージ
3.std::vector動的2次元配列
<resize>
1.基本的には以下の流れ参照
【C++】 メッセージボックスの作成
2.C++ファイル(.cpp)を以下のとおり変更する。
#include <windows.h>
#include <wchar.h>
#include <vector>
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
WCHAR wcText[256];
/*data[0][0]=3, data[1][0]=3, data[0][1]=3, data[1][1]=3で初期化
data(X, std::vector<int>(Y, S))→data[X][Y]全てSで初期化*/
std::vector<std::vector<int> > data(2, std::vector<int>(2, 3));
//data.resize(X, std::vector<int>(Y, T))→data[X][Y]でサイズ変更し増えた分を全てTで初期化*/
data.resize(3, std::vector<int>(2, 9));
swprintf(wcText, 256, L"%d %d %d %d %d %d", data[0][0], data[1][0], data[0][1], data[1][1],
data[2][0], data[2][1]);
MessageBox(NULL, wcText, L"vector動的2次元配列", MB_OK);
return 0;
}
#include <wchar.h>
#include <vector>
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
WCHAR wcText[256];
/*data[0][0]=3, data[1][0]=3, data[0][1]=3, data[1][1]=3で初期化
data(X, std::vector<int>(Y, S))→data[X][Y]全てSで初期化*/
std::vector<std::vector<int> > data(2, std::vector<int>(2, 3));
//data.resize(X, std::vector<int>(Y, T))→data[X][Y]でサイズ変更し増えた分を全てTで初期化*/
data.resize(3, std::vector<int>(2, 9));
swprintf(wcText, 256, L"%d %d %d %d %d %d", data[0][0], data[1][0], data[0][1], data[1][1],
data[2][0], data[2][1]);
MessageBox(NULL, wcText, L"vector動的2次元配列", MB_OK);
return 0;
}
配列イメージ
3.std::vector動的2次元配列
0 件のコメント:
コメントを投稿