関数の出力

最終更新日02 Mar 2018 03:01

C++

C++で、出力が一個の場合はreturn output,
C++で出力が複数あった場合、ポインタ引数で出力を入れるのがわかりやすくてよく使われます

#include <iostream>
#include <array>
#include <vector>
using namespace std;
 
void function(int* result){
    result[0] = 1;
    result[1] = 2;
    result[2] = 3;
}
int main() {
    int* ret = new int[3];
    for (int i = 0; i < 3;i++) { cout << "" << ret[i]<< endl; }
 
    function(ret);
    for (int i = 0; i < 3; i++) { cout << "" << ret[i] << endl; }
 
    return 0;
}

std::mapを簡易的戻り値として使ってみる

クラスを作成するのは面倒くさい。
関数の引数に出力をいっぱい入れるのも面倒くさくていや、
tupleだとどこに何を入れたかわからなくなる、
という場合
std::mapを戻り値にすると可読性の高い出力として使えるのでは??

あまりこういう使い方を目にすることは私はいままでなかったけど、自分で実験プログラムを作るには便利そうだ。
パフォーマンスはどうか知らない。

#include <iostream>
#include <map>
using namespace std;
const std::map<std::string, int> func() {
    return { {"a",1},{"b",2} };
}
 
int main()
{
    auto m = func();
    for (auto e : m) {
        cout << e.first <<" "<<e.second <<endl;
    }
}

std-map


ファイル

サポートサイト Wikidot.com std-map