我现在在vector中存放的是Sprite类的对象。
vector<Sprite * > spriteVector;
Sprite类中有个int valuse变量。我想按照valuse的大小对spriteVector里边的Sprite对象排序。我知道可以用sort方法排序,但是我写的排序规则报错。
bool AIScript::upSort(const Sprite &v1, const Sprite &v2){
return v1.valuse > v2.valuse;
}
vector spriteVector;
没错 , 我存的的确是指针对象。
那我排序规则的方法应该怎么写?
追答你的函数大致是不是这个意思
*********************************
class Student
{
public:
int value;
Student(){value = 0;}
};
bool sort(const Student &s1, const Student &s2)
{
return s1.value > s2.value;
}
int main()
{
Student xin, old;
xin.value = 12;
old.value = 13;
cout<<sort(xin, old)<<endl;
return 0;
}
我的vector存储的是对象指针, 不是对象。所以应该不是这么写的吧。
我现在这么写不知道有没有问题:
bool AIScript::upSort(Sprite *actor1 , Sprite *actor2){
return actor1->valuse > actor2->valuse
}
应该没问题。还有错误报告嘛
追问还是会报错。。。
追答错误报告是什么
我想可能是不是我的vector里边存储的是指针的问题。完了我的排序规则的自变量写的不对?
追答麻烦把错误报告帖出来看看
追问Called object type '' is not a function or function pointer
追答bound mamber funtion type是你自己定义的类型?
看起来不像是系统的....member拼错,function也拼错
我是手动输入的 , 因为我是在另一台机器上运行的程序。
追答双击错误提示定位一下你的错误代码所在的行
C++vector排序问题。
std::sort(spriteVector.begin(), spriteVector.end(), upSort);
C++ vector 排序问题
1、initJumper()初始化cVer jumper[NUM],返回vector<cVer> jumperVec 2、showEqu(),显示list<string *> 的list中的字符串,每个元素是<string *> 。3、showList1,正序显示vector<cVer> 4、showList2,逆序显示vector<cVer> 这个程序片段没有实质性的排序内容,理解问题的关键在于STL中迭代器...
c++读入一些整数,对其进行从小到大的排序要求使用vector和sort...
int main(){ int x;vector<int> a;\/\/定义一个容器 while(cin>>x&&x!='e'){ a.push_back(x);\/\/变量x在容器a尾部入栈 } sort(a.begin(),a.end());\/\/排序 for(int i=0;i<a.size();i++)\/\/输出(a.size():读取容器a的元素个数)cout<<a[i]<<" ";return 0;} ...
c++用sort对vector排序问题
我在我的电脑上编译执行了,程序没有错,所以应该是你的电脑环境有问题。你可以单步调试你的程序,看是哪一行出错了。
c++中怎样将vector中的元素倒序输出?
include <iostream> include <vector> using namespace std;int main(){ vector<int> vec;for (int i = 0; i < 5; ++i)vec.push_back(i);vector<int>::reverse_iterator it;for (it = vec.rbegin(); it != vec.rend(); it++)cout<<*it<<" ";cout<<endl;} ...
c++ vector 排序 sort 用不起来 我用的是code::blocks
1)手动列出所有字符串:vector <string> words("the", "quick", "red", "fox", "jumps", "over", "the", "slow", "red", "turtle");2)利用boost库的split来分割字符串:\/\/ 其他头文件自己加上#include <boost\/algorithm\/string.hpp>using namespace boost;vector <string> words;split...
c++用sort对vector排序问题
include<algorithm> include <vector> using namespace std;vector<string> a;int n = 7;bool compare(string a, string b){ if(a
C++中map,vector容器的<(小于号)比较算法是否为严格弱序算法?_百度知 ...
首先,两个vector容器之间只有“==”和“!=”两种关系,vector容器内部元素的类型也不一定要重载小于号。不过,如果要对一个vector进行排序的话,那么元素一定要重载小于号,而且是严格弱序。因为sort函数对于A和B来说,如果A<B和B<A同时不成立的话,那么A就等于B。如果在 A != B 时,出现A < ...
c++输入10个数存入vector中,升序排序后输出. 提示:使用sort函数_百度...
include <vector> using namespace std;class myclass { public:myclass(int a, int b):first(a), second(b){} int first;int second;bool operator < (const myclass &m)const { return first < m.first;} };bool less_second(const myclass & m1, const myclass & m2) { return m...
c++中对于几组字符串的升序或降序排序怎么做???
C++对字符串排序建议用STL下的Vector容器(集合)中的Sort函数排序 创建一个使用string类型的泛型集合vector类对象,在里面把字符串添加进去(使用集合中的Add函数即可),然后可以用vector集合的Sort函数排序(因为集合中的内容全部是字符串,所以不用担心遇到异常)