我想知道如何使用sort函数对一个类中的私有向量进行排序:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>


using namespace std;

class A{
private:
    const vector<int> myvec;
    A(vector<int>& vec) : myvec(vec) { }

public:
    const vector<int>& getvec() { return myvec; }

    int get_sec_element(){
        int sec_ele = 0;

        sort(myvec.begin(), myvec.end());

        sec_ele = myvec[2];
        return sec_ele;
    }
};


因此,如果我创建了A myvec_object并为其填充了已经具有值的向量,则校准myvec_o​​bject.get_sec_ele()将返回向量中的第二个元素。但是,编译器给出了一条巨大的错误消息:“从此处实例化”。可能是什么问题呢?

最佳答案

您将myvec声明为const-您希望如何修改它?

myvec声明为:

vector<int> myvec;

关于c++ - 如何使用排序对类中的 vector 进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7780640/

10-11 18:57