相关疑难解决方法(0)

C++排序和跟踪索引

使用C++,希望是标准库,我想按升序对一系列样本进行排序,但我还想记住新样本的原始索引.

例如,我有一个集合,矢量或样本矩阵A : [5, 2, 1, 4, 3].我想对这些进行排序 B : [1,2,3,4,5],但我也想记住值的原始索引,所以我可以得到另一个集合: C : [2, 1, 4, 3, 0 ]- 它对应于'B'中每个元素的索引,在原始'一个'.

例如,在Matlab中你可以这样做:

 [a,b]=sort([5, 8, 7])
 a = 5 7 8
 b = 1 3 2
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到这样做的好方法吗?

c++ sorting indexing stl

203
推荐指数
7
解决办法
11万
查看次数

c ++ 11返回值优化还是移动?

我不明白何时应该使用std::move,何时应该让编译器优化...例如:

using SerialBuffer = vector< unsigned char >;

// let compiler optimize it
SerialBuffer read( size_t size ) const
{
    SerialBuffer buffer( size );
    read( begin( buffer ), end( buffer ) );
    // Return Value Optimization
    return buffer;
}

// explicit move
SerialBuffer read( size_t size ) const
{
    SerialBuffer buffer( size );
    read( begin( buffer ), end( buffer ) );
    return move( buffer );
}
Run Code Online (Sandbox Code Playgroud)

我应该使用哪个?

c++ move return-value-optimization rvo c++11

166
推荐指数
4
解决办法
8万
查看次数

标签 统计

c++ ×2

c++11 ×1

indexing ×1

move ×1

return-value-optimization ×1

rvo ×1

sorting ×1

stl ×1