TBBを使用して、順序付けられていないブーストバイマップに挿入します

AwaitedOne

私はに関して非常に混乱していTBBます。が型あり、型がである<key, value>、順序付けられていないバイマップにペアを挿入しようとしています。ファイルにあるを作成しようとしましたが次のようになります。keyuint64_tvaluestringloop objectTBB.h

void ParallelIndex(uint64_t &kmer_len, std::string &split_kmer, std::string &sequence_content,
            uint64_t &sequence_length, size_t &kmer_position ) {
        parallel_for( blocked_range<size_t>(0, sequence_length),
                [&](const blocked_range<size_t>& r) {
            for(i = r.begin(); i < r.end();  ++i ){
                split_kmer = sequence_content.substr(i, kmer_len);
                reference_index_vector.insert(position(kmer_position, split_kmer)); 
                i += kmer_len-1;
                kmer_position += kmer_len;

                }
        }
        );
    }

にあるmain関数で、関数TBB.cppを呼び出そうとしました

index.ParallelIndex(index.kmer_len, index.split_kmer, index.sequence_content,
        index.sequence_length, index.kmer_position );

0から始まり、nを通過します。i5ずつインクリメントしようとしています(最初++ii +=kmer_len-1i = 0, 5, 10, 15, ...nまでのように)が、i1だけインクリメントされます。

完全なコードを以下に示します。

TBB.cpp

#include <iostream>
#include <string>
#include <algorithm>
#include <boost/bimap.hpp>
#include <boost/bimap/unordered_set_of.hpp>
#include <boost/bimap/unordered_multiset_of.hpp>
#include "tbb/parallel_for.h"
#include "TBB.h"
#include "tbb/tbb.h"
#include <tbb/blocked_range.h>



using namespace tbb;


namespace bimaps = boost::bimaps;
typedef boost::bimap<bimaps::unordered_set_of<uint64_t>,
        bimaps::unordered_multiset_of<std::string> > bimap_reference;
typedef bimap_reference::value_type position;
bimap_reference reference_index_vector;



uint64_t thread_test::create_index::kmer_len = 5;
std::string thread_test::create_index::split_kmer = "";
std::string thread_test::create_index::sequence_content = "ABCDDBACDDDCBBAAACBDAADCBDAAADCBDADADACBDDCBBBCDCBCDAADCBBCDAAAD";
uint64_t thread_test::create_index::sequence_length = 0;
size_t thread_test::create_index::kmer_position = 0;
size_t thread_test::create_index::i = 0;
int main(){
    thread_test::create_index index;
    index.sequence_length = index.sequence_content.length();

    index.ParallelIndex(index.kmer_len, index.split_kmer, index.sequence_content,
            index.sequence_length, index.kmer_position );

    for( bimap_reference::const_iterator iter = reference_index_vector.begin(), iend = reference_index_vector.end();
                iter != iend; ++iter ) {
            std::cout << iter->left << " <--> "<< iter->right <<std::endl;
        }

}

TBB.h

#ifndef TBB_H_
#define TBB_H_

#include<iostream>
#include <algorithm>
#include <utility>
#include <boost/bimap.hpp>
#include <boost/bimap/unordered_set_of.hpp>
#include <boost/bimap/unordered_multiset_of.hpp>
#include "tbb/tbb.h"
#include <tbb/parallel_for.h>
#include <tbb/blocked_range.h>
#include <tbb/mutex.h>


using namespace tbb;


namespace bimaps = boost::bimaps;

typedef boost::bimap<bimaps::unordered_set_of<uint64_t>,
        bimaps::unordered_multiset_of<std::string > > bimap_reference;
typedef bimap_reference::value_type position;
extern bimap_reference reference_index_vector;



namespace thread_test{

class create_index{

public:
    static uint64_t kmer_len;
    static std::string split_kmer;
    static std::string sequence_content;
    static uint64_t sequence_length;
    static size_t kmer_position;
    static size_t i;

//  using lambda function

    void ParallelIndex(uint64_t &kmer_len, std::string &split_kmer, std::string &sequence_content,
            uint64_t &sequence_length, size_t &kmer_position ) {
        parallel_for( blocked_range<size_t>(0, sequence_length),
                [&](const blocked_range<size_t>& r) {
            for(i = r.begin(); i < r.end();  ++i ){
                split_kmer = sequence_content.substr(i, kmer_len);
                reference_index_vector.insert(position(kmer_position, split_kmer));
                i += kmer_len-1;
                kmer_position += kmer_len;
                }
        }
        );
    }
};
}

#endif /* TBB_H_ */

問題はi1ずつインクリメントされますが、上記のように5ずつインクリメントしようとしています。

アガズワニ

に変更for(i = r.begin(); i < r.end(); ++i )for(; i < r.end(); ++i )ます。最初のケースでは、を再初期化しi = r.begin()ます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

特定の行(インラインブロック)の順序付けられていないリストの後にブレークを挿入します

分類Dev

要素<string、pointer>を追加して、順序付けられていないハッシュマップをブーストします

分類Dev

リストを値として使用する順序付けられていないマップの使用方法

分類Dev

順序付けられていないマップがすべてのバケット値を出力しない

分類Dev

挿入C ++を使用した後、順序付けられていないセットで順序を維持する

分類Dev

Javascriptを使用して順序付けられていないリストをループする

分類Dev

JQueryを使用して、子サブメニューの前に順序付けされていないリストアイテムにクラスを挿入するにはどうすればよいですか?

分類Dev

c ++は、いくつかの順序付けられていないマップに対してループを実行します

分類Dev

順序付けられていないハッシュをROWIDとして挿入すると、SQLiteはどのように動作しますか?

分類Dev

順序付けられていないマップのオーバーフローを介して相互作用することはできません

分類Dev

欠落している文字列を複数の順序付けられた列に挿入します

分類Dev

Dartは順序付けられていないリストをオブジェクトと比較します

分類Dev

Java nativeQuery:AliasToEntityMapResultTransformerを使用したResultSetのマップに順序付けられていない列があります

分類Dev

std ::カスタムキーを使用した順序付けされていないマップは、約31,000要素で失敗します

分類Dev

[]を順序付けられていないマップにインデックス付けするときのセグメンテーション違反

分類Dev

Python-順序付けられていないリスト全体を解析しない美しいスープ

分類Dev

順序付けられていないブロードキャスト中に結果を返そうとしているBroadcastReceiver-SMSレシーバー

分類Dev

順序付けられていないタプルをキーとしてマップ

分類Dev

順序付けられていないリンクリストの各項目に整数を追加します

分類Dev

asp.net mvc、順序付けられていないリストはポストバックで一番下までスクロールします

分類Dev

Bootstrapを使用して、画像の順序付けられていないリストを水平方向にどのように設計しますか?

分類Dev

順序付けられていないマップと配列を使用した検索

分類Dev

Javaは、順序付けられていないオブジェクト/値のセット/リストから一意のIDを生成します

分類Dev

ブートストラップモーダルポップアップ送信時に順序付けされていないリストの正しいリストアイテムを更新する方法

分類Dev

配列の検証jsonには、jsonスキーマを使用して順序付けされていないオブジェクトがいくつか含まれています

分類Dev

2つの順序付けられていないシートを比較し、違いを強調表示します

分類Dev

ハッシュ値を順序付けられていないマップに渡して、保持される時間ロックを減らす方法は?

分類Dev

順序付けされていないリストを配列に変換して、localstorageに保存します

分類Dev

正規表現を使用して順序付けられていないリストを作成する

Related 関連記事

  1. 1

    特定の行(インラインブロック)の順序付けられていないリストの後にブレークを挿入します

  2. 2

    要素<string、pointer>を追加して、順序付けられていないハッシュマップをブーストします

  3. 3

    リストを値として使用する順序付けられていないマップの使用方法

  4. 4

    順序付けられていないマップがすべてのバケット値を出力しない

  5. 5

    挿入C ++を使用した後、順序付けられていないセットで順序を維持する

  6. 6

    Javascriptを使用して順序付けられていないリストをループする

  7. 7

    JQueryを使用して、子サブメニューの前に順序付けされていないリストアイテムにクラスを挿入するにはどうすればよいですか?

  8. 8

    c ++は、いくつかの順序付けられていないマップに対してループを実行します

  9. 9

    順序付けられていないハッシュをROWIDとして挿入すると、SQLiteはどのように動作しますか?

  10. 10

    順序付けられていないマップのオーバーフローを介して相互作用することはできません

  11. 11

    欠落している文字列を複数の順序付けられた列に挿入します

  12. 12

    Dartは順序付けられていないリストをオブジェクトと比較します

  13. 13

    Java nativeQuery:AliasToEntityMapResultTransformerを使用したResultSetのマップに順序付けられていない列があります

  14. 14

    std ::カスタムキーを使用した順序付けされていないマップは、約31,000要素で失敗します

  15. 15

    []を順序付けられていないマップにインデックス付けするときのセグメンテーション違反

  16. 16

    Python-順序付けられていないリスト全体を解析しない美しいスープ

  17. 17

    順序付けられていないブロードキャスト中に結果を返そうとしているBroadcastReceiver-SMSレシーバー

  18. 18

    順序付けられていないタプルをキーとしてマップ

  19. 19

    順序付けられていないリンクリストの各項目に整数を追加します

  20. 20

    asp.net mvc、順序付けられていないリストはポストバックで一番下までスクロールします

  21. 21

    Bootstrapを使用して、画像の順序付けられていないリストを水平方向にどのように設計しますか?

  22. 22

    順序付けられていないマップと配列を使用した検索

  23. 23

    Javaは、順序付けられていないオブジェクト/値のセット/リストから一意のIDを生成します

  24. 24

    ブートストラップモーダルポップアップ送信時に順序付けされていないリストの正しいリストアイテムを更新する方法

  25. 25

    配列の検証jsonには、jsonスキーマを使用して順序付けされていないオブジェクトがいくつか含まれています

  26. 26

    2つの順序付けられていないシートを比較し、違いを強調表示します

  27. 27

    ハッシュ値を順序付けられていないマップに渡して、保持される時間ロックを減らす方法は?

  28. 28

    順序付けされていないリストを配列に変換して、localstorageに保存します

  29. 29

    正規表現を使用して順序付けられていないリストを作成する

ホットタグ

アーカイブ