C for each語句中,如何獲得元素位置?

時間 2021-05-05 17:00:31

1樓:mapgrep

std::vector v;

std::vector idx(v.size());

iota(idx.begin(), idx.end(), 0);

concurrency::parallel_for_each(std::begin(idxstd::

end(idxamp;v](auto istd::cout << i << " " << v[i] << std::endl

2樓:SuperFashi

兩種方法:

1、zip一下下標和元素,缺點是需要元素再拷貝

2、新建乙個vector::iterator>或者vector,手動或者iota所有的迭代器或下標進去,遍歷這個新的vector。

3樓:

你需要Range-V3

ranges::v3::view::ints_fn Struct Reference

namespace

rv3=

ranges

::v3

::view

;std

::vector

a;

autora=

rv3::

zip(a,

rv3::

ints

(static_cast

size_t

>(0),a.size

()));

std::

parallel_for_each

(begin(ra

),end(ra

),[&](

auto

&&element));

在JavaScript迴圈語句中,for 和for in 迴圈哪個效率更高?

Jim Liu 用控制台是測不出效能的,因為控制台本質上是個套了一大堆安全機制的eval,它的沙盒化程度很高。用for遍歷是比for in快的,所以陣列是決計不要用for in來遍歷的。需要遍歷乙個kv的時候,如果它的key數量較多,比如幾十上百個,先用Object.getOwnPropertyNa...

MySQL的group by 語句中,能否對count的元素進行篩選,在count 1 的同時,也對某個欄位count符合條件的數量?

我建了個臨時表 用三種方法實現 1 select sid count 1 sum case when type 0 then 1 else 0 end from t 170309 group by sid 其實你自己的理解最接近於這個case when的語法 2 簡潔的語法,可用count cond...

switch語句中,case的後面為什麼必須是常量?

gpgkd906 在大部分動態語言中,case後面是可以接變數甚至是表示式的。比如說你可以這麼做 vara 0 b 1 c 3 switch true 基本上這種型別都可以用if else來寫,但是用switch寫可讀性會好一些。如果需要效能的話可以自己手動實現乙個跳轉表,現有的動態語言一般都支援一...