我想知道vector的哪个元素是最小的,但min_element
将迭代器返回给该元素。所以我尝试了这个:
vector<int> vec = {4,5,0,1,2,3} ;
int min_element_index = min_element(vec.begin(), vec.end()) - vec.begin();
Run Code Online (Sandbox Code Playgroud)
但是,我不确定这将始终有效。我不知道向量在内存中的存储方式,我担心使用时会中断push_back
。
Jab*_*cky 10
您也可以这样做:
std::vector<int>::iterator it = std::min_element(std::begin(vec), std::end(vec));
std::cout << "index of smallest element: " << std::distance(std::begin(vec), it);
Run Code Online (Sandbox Code Playgroud)
甚至更简单:
auto it = std::min_element(std::begin(vec), std::end(vec));
std::cout << "index of smallest element: " << std::distance(std::begin(vec), it);
Run Code Online (Sandbox Code Playgroud)
要么:
std::cout << "index of smallest element: " <<
std::distance(std::begin(v), std::min_element(std::begin(v), std::end(v)))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
93 次 |
最近记录: |