GBl*_*ney 3 c++ sorting vector
我有一个这样的矢量设置,我想对它进行排序:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
const int a =10;
int b = 20;
pair<const int, int> constPair1(a,b);
b=30;
pair<const int, int> constPair2(a,b);
vector<pair<const int, int>> vec{constPair1,constPair2};
sort(vec.begin(),vec.end());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,由于const值的原因,上面的排序不会编译.有什么方法可以对这个载体进行排序吗?或者我是不是创建了一个新的向量并复制了值?
在C++ 03中,std :: vector中的元素必须是可复制赋值的,并且可以在c ++中进行复制构造.具有const成员的对不符合该要求,因此无效.编译器是正确的.
在C++ 11中,std :: vector中的元素必须是可移动赋值和可移动构造的.无法移动具有const成员的对,从而导致代码无效.
| 归档时间: |
|
| 查看次数: |
846 次 |
| 最近记录: |