簡體   English   中英

浮點數組的 std::max_element

[英]std::max_element for float array

我有一個 function 它返回一個 float * like 和另一個返回該數組的長度:

float *getTestData() {
    static float tdata[] = {1.0, 5.0, 10};
    return tdata; 
}

unsigned int getTestDataLen() {
    return 3;
}

現在我想用 std::max_element 找到最大元素。 有沒有辦法在運行時從該數組中獲取具有已知長度但在編譯時不知道的迭代器? 我可以使用 C++17 以內的任何東西。 getTestData 的返回只是一個示例。 計划是返回任何長度。

如果您堅持這種設計決定,您可以將float*視為迭代器。

例子:

#include <algorithm>
#include <iostream>
#include <iterator>

float *getTestData() {
    static float tdata[] = {1.0, 5.0, 10};
    return tdata; 
}

unsigned int getTestDataLen() {
    return 3;
}

int main() {    
    auto begin = getTestData();
    auto end = std::next(begin, getTestDataLen());

    auto maxit = std::max_element(begin, end);

    if(maxit != end) {
        std::cout << *maxit << '\n';
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM