「std::iota」の版間の差分

提供: C++入門
移動: 案内検索
 
行1: 行1:
[[C++]]の[[std::iota]] とは、シーケンシャルにインクリメントした数字(連番)でコンテナや配列を指定したレンジで埋める機能を提供します。[[C++11]で追加されました。
+
[[C++]]の[[std::iota]] とは、シーケンシャルにインクリメントした数字(連番)でコンテナや配列を指定したレンジで埋める機能を提供します。[[C++11]]で追加されました。
  
 
'''読み方'''
 
'''読み方'''
行6: 行6:
  
 
== 概要 ==
 
== 概要 ==
従来であれば、手動で初期化をしたり、[[for]]文や[[std::generate]]、[[std::for_each]]などいろいろな手段を用いて、コンテナや配列を初期化していたでしょう。
+
従来であれば、手動で初期化をしたり、[[for]]文や[[std::generate]]、[[std::for_each]]と[[関数オブジェクト]]や[[ラムダ式]]などいろいろな手段を用いて、コンテナや配列を初期化していたでしょう。
 
連番の数字でコンテナや配列を初期化する場合には、[[std::iota]]が非常に簡単です。
 
連番の数字でコンテナや配列を初期化する場合には、[[std::iota]]が非常に簡単です。
 
== iota1.cpp の例 ==
 
== iota1.cpp の例 ==

2014年1月4日 (土) 00:59時点における最新版

C++std::iota とは、シーケンシャルにインクリメントした数字(連番)でコンテナや配列を指定したレンジで埋める機能を提供します。C++11で追加されました。

読み方

std::iota
えすてぃーでぃー いおた

概要

従来であれば、手動で初期化をしたり、for文やstd::generatestd::for_each関数オブジェクトラムダ式などいろいろな手段を用いて、コンテナや配列を初期化していたでしょう。 連番の数字でコンテナや配列を初期化する場合には、std::iotaが非常に簡単です。

iota1.cpp の例

ソースコード iota1.cpp

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main(int argc, char const* argv[])
{
        vector<int> v(10);
        iota(v.begin(),v.end(), 1);
        for(auto i: v){
                cout << i << " ";
        }
        cout << endl;
        return 0;
}

コンパイル

g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \
-Wl,-rpath=/usr/local/lib/gcc49  iota1.cpp -o iota1

実行例

% ./iota1
1 2 3 4 5 6 7 8 9 10

関連項目