std::pair<uint32_t, std::vector<float32>> myPair
假设,
myPair = { {1221, [234.1, 1235.6]},
{5579, [56.9, 5780.0]},
{ 467, [69579.8, 7974.55]} }
上面声明的
myPair
就是pair类型容器的对象。所以我只需要检索上面对中的密钥,即 1221、5579、467...等
你需要这样的东西。您可以根据我的回答中的需要更改数据类型。在 for 循环中,您可以根据需要比较这些键值
#include <iostream>
#include <vector>
int main() {
std::vector<std::pair<int, std::vector<float>>> myPairs =
{ {1221, { 234.1F, 1235.6F}},
{5579, { 56.9F, 5780.0F}},
{ 467, {69579.8F, 7974.55F}} };
for (const auto& p : myPairs) {
std::cout << p.first << "\n";
}
return 0;
}
std::transform
轻松完成此操作。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::pair<int, std::vector<float>>> myPairs = {
{1221, { 234.1, 1235.6 }},
{5579, { 56.9, 5780.0 }},
{ 467, {69579.8, 7974.55}}
};
std::vector<int> keys;
std::transform(
myPairs.cbegin(), myPairs.cend(),
std::back_inserter(keys),
[](const auto &pair) { return pair.first; }
);
for (const auto &k : keys) {
std::cout << k << '\n';
}
}