小编mad*_* bs的帖子

std :: vector在Linux和Windows中给出了不同的结果

我有一个任务来分析vectorNode(一个由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中输出的差异吗?

c++ optimization mingw stdvector

5
推荐指数
0
解决办法
518
查看次数

标签 统计

c++ ×1

mingw ×1

optimization ×1

stdvector ×1