イネマルのプログラミング備忘録

趣味プログラマのメモ

C++ コマンドライン引数をstd::vector<std::string>に展開する方法

ちょっとしたメモ

コマンドライン引数をstd::vector<std::string>に展開する方法です。
パース自体は、コンストラクタのみで実現できます。

実装

#include <iostream>
#include <vector>
#include <string>

int main(int argc, char** argv)
{
    using namespace std;
    vector<string> args(argv, argv + argc);
    for (const auto& arg : args) {
        cout << arg << endl;
    }
    return 0;
}

あとがき

エントリーポイントを int main(std::vector<std::string> args)
みたいに書けたら楽ですが、そういう横着はできません。

元ネタは、下記を参照。
stackoverflow.com