typedef TriIndex ...
typedef std::map< TriIndex, unsigned int > VertexMap;
VertexMap vertex_map;
for (size_t i = 0; i < face.size(); ++i) {
for (size_t j = 0; j < 3; ++j) {
std::pair< VertexMap::iterator, bool > rv = vertex_map.insert(std::make_pair( face.v[j], vert_idx_counter));
if (rv.second) {
//do stuff
}
}
}
Я достал фрагмент из кода стартового ключа. Я получаю то, что он делает для следующей строки за исключением:std :: map :: insert return value?
std::pair< VertexMap::iterator, bool > rv = vertex_map.insert(std::make_pair( face.v[j], vert_idx_counter));
Я понимаю, что линия объявляет пару под названием с.в. с итератором и логическим значением -. Но с правой стороны есть vertex_map.insert - но из того, что я знаю, insert является функцией void. Как вы получаете пару от вставки пары в карту вершин?
«от того, что я знаю»? Вы видели руководство? : http://en.cppreference.com/w/cpp/container/map/insert – ooga
"Возвращает пару, состоящую из итератора, к вставленному элементу (или элементу, который предотвращал вставку), и bool, указывающий, является ли вставка ». - связанная документация –
@ooga wow я всегда думал, что вставка была недействительной ... ну, я должен был сначала проверить руководство – JayC