看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《DRLai (蘇打)》之銘言: : 遇到的問題: : 因為我的程式需要大量的運算,剛好系統擁有八核心 : 想要透過多核心處理機制 : 之前使用OpenMP,但是OpenMP不支援iterator : 想請問是否有其他類似OpenMP的函式庫可用 : (希望能支援iterator的@~@) 因為支援 iterator 是 3.0 的 2.0 只有 for (int ...) 不過腦筋轉一下應該知道可以怎麼用吧 #pragma omp parallel { size_t nThreadMax = omp_get_num_threads (); size_t nThreadCur = omp_get_thread_num (); std::list <long> ::iterator it = kList.begin (); for (size_t i = 0; it != kList.end () && i < nThreadCur; ++it, ++i); while (it != kList.end ()) { std::cout << *it << std::endl; for (size_t i = 0; it != kList.end () && i < nThreadMax; ++it, ++i); } } 甚至可以寫成 template for_each 方式 -- 不過我個人不是很喜歡 template 這種東西就是了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.179.47 ※ 編輯: wowtiger 來自: 114.44.179.47 (10/25 00:50)