我有一个任务来分析vector当Node(一个由long值组成的对象)被添加到它之前的行为方式.我已经在a的复制构造函数中放置了一个计数器,Node以查看当向量移动到新位置时(即vector增长时)调用它的次数.
我得到以下结果:
Windows - MinGW编译器:
|--------------------Vector-------------------|
Size Time Creates Copies Destroys
100 0 ms 100 411 411
Run Code Online (Sandbox Code Playgroud)
Linux的:
|--------------------Vector-------------------|
Size Time Creates Copies Destroys
100 0 ms 100 227 227
Run Code Online (Sandbox Code Playgroud)
Node.cpp
Node::Node(const Node& x){
this->value = x.get_value();
copy_count++;
}
Run Code Online (Sandbox Code Playgroud)
SortedVector.cpp
vector<Node> data;
void SortedVector::prepend(const long value){
const Node x(value);
data.insert(data.begin(), x);
}
Run Code Online (Sandbox Code Playgroud)
令人宽慰的是复制构造函数的计数与析构函数中的相同,但是,请您帮助我理解Linux和Windows中输出的差异吗?