gpt4 book ai didi

c++ - 计算 std::vector 的复制和 move 次数

转载 作者:行者123 更新时间:2023-11-30 01:08:42 28 4
gpt4 key购买 nike

我有一个用 C++11 编写的程序,我想计算 std::vector<double> 的 move 和复制(构造和赋值)次数。对象。有办法吗?

最好的问候

最佳答案

std::vector<>的执行没有办法做到这一点。我所知道的任何编译器也没有。

如评论中所述,您可以创建自己的计数替代品并使用它。即

struct counting_vector_double
: std::vector<double>
{
static size_t count_copy_ctor;
static size_t count_move_ctor;

counting_vector_double(counting_vector_double const&other)
: std::vector<double>(other)
{ count_copy_ctor++; }

// etc
};

// in .cc file:
size_t counting_vector_double::count_copy_ctor = 0;
size_t counting_vector_double::count_move_ctor = 0;

(在多线程情况下使用 atomic 计数器。)要实现这一点,您可以使用 typedef。或 using指令,例如

#ifdef CountingMoveCopy
using vector_double = counting_vector_double;
#else
using vector_double = std::vector<double>;
#endif

并使用vector_double在您的代码中。

关于c++ - 计算 std::vector 的复制和 move 次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41654166/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com