小编Gab*_*ins的帖子

如何将所有指针从一个向量移动到另一个向量?

基本上我想要做的是删除向量中的一些指针,但我发现在向量中间执行它可能会很慢.

所以我有一个已经包含数据的向量:

std::vector<Class*> vec1; // This already contains pointers

我将遍历vec1并将一些指针添加到另一个向量(vec2): vec2.push_back(vec1.at(index))

现在我想做的就是这样,vec1 = vec2但我不知道这是否是更好(有效)的方式.

最好的方法是什么?

我试过了:

  1. 在循环浏览vec1时,只需删除我需要从中删除的内容:

    it = vec1.erase(it)

  2. 循环通过vec1将最后一项移动到实际索引和poping_back

    vec1.at(index) = vec1.back(); vec1.pop_back();

  3. 在循环浏览vec1而不是使用时,在指针指向的对象上设置一些属性 std::remove_if

    vec1.erase(std::remove_if(vec1.begin(), vec1.end(), shouldBeRemoved), vec1.end());

  4. 现在我正在尝试生成一个新的向量,同时循环通过vec1并添加我想要保留的指针,然后"交换"或"移动"这个新向量的内容到vec1.

显然,当第四种方式,指针失效:(

我很乐意看到你们的建议我.非常感谢愿意帮助的每个人!

c++ performance c++11

5
推荐指数
1
解决办法
188
查看次数

如何从Firestore时间戳记(firebase)中获取时间?

我一直在尝试从存储在Firestore数据库中的日期获取“时间之前”。

我已经尝试了两个可以做到这一点的软件包,但我无法使其与Firestore时间戳一起使用,老实说,我不敢相信获得此软件包的难度如此之大。

获得自身更新的“时间之前”的最简单方法是什么?

我设法从Firestore的时间戳中获取了完整的日期,而不是它的早期版本。

date firebase angular google-cloud-firestore

2
推荐指数
1
解决办法
1667
查看次数