C++ 如何对常量向量进行排序?

C++ 如何对常量向量进行排序?,c++,vector,C++,Vector,如果我在类中定义了一个常量向量,我如何对它进行排序 尝试对常量向量进行排序将产生错误,因为我正在更改常量向量的内容。您没有。如果您需要修改它。。。那就不应该是康斯特了。这两个目标彼此直接冲突 与其要求解决一个毫无意义的问题,不如告诉我们你在这里真正想要完成的是什么。您是否试图从不希望调用方能够修改的方法返回向量?在这种情况下,创建一个getter方法并返回一个const向量& 你没有。如果您需要修改它。。。那就不应该是康斯特了。这两个目标彼此直接冲突 与其要求解决一个毫无意义的问题,不如告诉我们

如果我在类中定义了一个常量向量,我如何对它进行排序


尝试对常量向量进行排序将产生错误,因为我正在更改常量向量的内容。

您没有。如果您需要修改它。。。那就不应该是康斯特了。这两个目标彼此直接冲突

与其要求解决一个毫无意义的问题,不如告诉我们你在这里真正想要完成的是什么。您是否试图从不希望调用方能够修改的方法返回向量?在这种情况下,创建一个getter方法并返回一个const向量&


你没有。如果您需要修改它。。。那就不应该是康斯特了。这两个目标彼此直接冲突

与其要求解决一个毫无意义的问题,不如告诉我们你在这里真正想要完成的是什么。您是否试图从不希望调用方能够修改的方法返回向量?在这种情况下,创建一个getter方法并返回一个const向量&


向量是常数吗?还是其中需要常量的数据

如果你有一个常量向量,那么可能有一个不应该修改它的原因

话虽如此。以下是关于如何射中自己脚的伪代码:

const std::vector< Foo* > v;  // hypothetical declaration
std::vector< Foo* >* vPtr = const_cast< std::vector< Foo* >* >(&v);
// GOOD LUCK
(*vPtr)[0] = new Foo(); 

向量是常数吗?还是其中需要常量的数据

如果你有一个常量向量,那么可能有一个不应该修改它的原因

话虽如此。以下是关于如何射中自己脚的伪代码:

const std::vector< Foo* > v;  // hypothetical declaration
std::vector< Foo* >* vPtr = const_cast< std::vector< Foo* >* >(&v);
// GOOD LUCK
(*vPtr)[0] = new Foo(); 

是,你可以在C++中排序const向量。

设常数向量为v

const vector<int> v={5,4,3,2,1};
您可以使用另一个向量指针对向量v进行排序,并将其引用到该指针

在此之后,如果你打印向量v,那么你将得到如下输出-

for(int a:v)
    cout<<a<<" ";
cout<<endl;

输出:1 2,3,4,5,

< P>是的,你可以在C++中排序一个const向量。 设常数向量为v

const vector<int> v={5,4,3,2,1};
您可以使用另一个向量指针对向量v进行排序,并将其引用到该指针

在此之后,如果你打印向量v,那么你将得到如下输出-

for(int a:v)
    cout<<a<<" ";
cout<<endl;

输出:1 2 3 4 5

如果需要修改它,为什么它是常量?如果需要修改它,为什么它是常量?+1下面是如何在脚评论中射击自己的方法:+1以下是你如何射中自己的脚的评论:@罗布:陈雷蒙说得最好:@Rob:Raymond Chen说得最好: