2017-01-31 3 views
-2

私はC++を使い慣れています(私はC言語の経験がありますが)。この関数を理解することはできません。
私の問題は、行と特異的である:
std::tuple<std::string,std::string> tmp(protein[i], protein[i+order]) ;関数を理解できません(C++)

誰かが私にそれを説明してもらえますか?

std::vector< std::tuple< std::string,std::string > > domPairSet(std::vector<std::string> protein, int order) { 
    /* 
    Create a set of domain pair of a specified order from a protein 
    \param protein1 
    \param order 
    \return pairsOfDom 
    */ 
    std::vector< std::tuple< std::string,std::string > > pairsOfDom ;  
    int cnt;  
    for (unsigned int i = 0 ; i < protein.size() - order ; i ++) { 
     std::tuple<std::string,std::string> tmp(protein[i], protein[i+order]) ; 
     cnt = std::count(pairsOfDom.begin(), pairsOfDom.end(), tmp) ; 
     if (cnt == 0) 
      pairsOfDom.push_back(tmp); 
    } 
    return pairsOfDom ; 
} 
+0

'tmp'という名前の変数を作成して初期化します。型は 'std :: tuple 'です。これは簡単な言葉で "一対の文字列"を意味します。 –

+0

あなたはC++を読みたいと思うでしょう - 多分オンラインプログラミングのチュートリアルを2回取って - その中のコードを理解しようとする前に。多くの指示なしに解析できる言語ではありません。 –

+0

質問タイトルとバイオインフォマティクスタグはどちらも質問とは無関係です。 (「Sherlock Holmes」は、謎の小説の文章の最後に完全停止する目的には無関係です。あなたは読んでいることがあります。)あなたの質問は、あなたが本当に困惑していること。私は[タプル](http://en.cppreference.com/w/cpp/utility/tuple)と関係があると思いますが、私は確かにあなたの心を読むことはできません。 –

答えて

3
std::tuple<std::string,std::string> tmp(protein[i], protein[i+order]); 

std::tuple任意のタイプの値の固定サイズのコレクションであるクラステンプレートです。

したがって、std::tuple<std::string, std::string> tmpは、std::stringタイプの2つの要素を保持するタプル型の変数を作成します。

最後に、​​部分はタプルコンストラクタを呼び出し、その値をタプルの要素に渡します。

この行の後に、protein[i]protein[i+order]という値を持つstringタイプの2つの要素を持つタプルがあります。

関連する問題