????????????????????????????????????????????????????????????????????????????????????????????????
   
    ????????Inversion of Control???????д?IoC?????????????????????????????????????????????????????????????????????????????Dependency Injection???????DI.
   
    ??????????????????????????????????????????ж?????????壬????????????????????????????????????????????????????С?????????????????????????????????е???á?
   
    ??????????????????????????????????????????????????????"???????????????"?????????
   
    ???????????????????????????????????????????????????????????????????????????????????????????????????????????????
   
    void reorder??
   
    bsl::deque<uint32_t> &deque??
   
    {
   
    srand??getCurTime????????
   
    for ??int indexLeft = 0;
   
    indexLeft < deque.size??????
   
    ++indexLeft??
   
    {
   
    int indexRight = rand????% ??deque.size????-indexLeft????
   
    swap??deque[indexLeft]??
   
    deque[indexRight]????
   
    }
   
    }
   
    ?????????
   
    ????????????????????????????????
   
    TEST_OLD??test_reorder_suite??should_reorder_deque_randomly??
   
    {
   
    bsl::deque<uint32_t> deque;
   
    deque.push_back??1????
   
    deque.push_back??2????
   
    reorder??deque????
   
    EXPECT_EQ??deque[0]?? 2????
   
    EXPECT_EQ??deque[1]?? 1????
   
    }
   
    ????????
   
    // ??reorder?????г?????????
   
    void reorder_by_seed??uint32_t seed??
   
    bsl::deque<uint32_t> &deque??
   
    {
   
    srand??seed????
   
    for ??int indexLeft = 0;
   
    indexLeft < deque.size??????
   
    ++indexLeft??
   
    {
   
    int indexRight = rand????
   
    % ??deque.size????-indexLeft????
   
    swap??deque[indexLeft]??
   
    deque[indexRight]????
   
    }
   
    }
   
    void reorder??
   
    bsl::deque<uint32t> &deque??
   
    {
   
    reorder_by_seed??getCurTime??????
   
    deque????
   
    }
   
    ???????????
   
    TEST_NEW??test_reorder_by_seed_suite??
   
    should_reorder_deque_by_seed_randomly??
   
    {
   
    bsl::deque<uint32_t> deque;
   
    deque.push_back??1????
   
    deque.push_back??2????
   
    uint32_t seed = 12;
   
    reorder_by_seed??seed?? deque????
   
    EXPECT_EQ??deque[0]?? 2????
   
    EXPECT_EQ??deque[1]?? 1????
   
    }
   
    ?????????????????????????????????????????????????????????????????????????????????????????????ɡ?