Hum*_*awi 10 c++ pointers iterator vector c++11
我有一个功能:
void get_good_items(const std::vector<T>& data,std::vector<XXX>& good_items);
这个函数应该检查所有资料后,发现满足条件和回报的项目,他们是在good_items.
什么是最好的而不是std::vector<XXX>?
std::vector<size_t> 包含所有好的指数.std::vector<T*> 包含指向项目的指针.std::vector<std::vector<T>::iterator> 包含项目的迭代器.编辑:
我该good_items怎么办?很多事情......其中之一是从矢量中删除它们并将它们保存在其他地方.也许晚些时候
编辑2:
对我来说最重要的一点是如何data根据结构来快速访问项目good_items?
编辑3:
我刚才认为我的想法是错的.保持原始指针(或智能)作为向量的项目不是更好,所以我可以保持向量的实际值(这是指针),我不怕重复,因为它们只是指针?
如果您从原始向量中删除项目,那么您列出的每一种方法都会出现问题。
如果将项目添加到原始向量,第二个和第三个将会出现问题。push_back如果您用来添加项目,第一个不会有问题。
如果你不修改原始向量,所有这些都可以。
鉴于此,我建议使用std::vector<size_t>.