vector 指针结果 排序

struct ET
{
ET(int i){
n=i;
};
ET(){
n=0;
};
int n;
};
bool cmp(const ET* lhs, const ET* rhs)
{//从大到小排列
return (lhs->n > rhs->n);
}
void __fastcall TForm18::Button2Click(TObject *Sender)
{
vector <ET*> v1;
vector <ET*>::iterator Iter1;
ET et[16];
for ( int i = 0 ; i <= 5 ; i++ )
{
et[i].n=2 * i;
v1.push_back( &et[i]);
}
int ii;
for ( ii = 0 ; ii <= 5 ; ii++ )
{
et[ii+5].n=2 * ii;
v1.push_back( &et[ii+5]);
// v1.push_back( ET(2 * ii + 1) );
}
cout << "Original vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << (*Iter1)->n << " ";
cout << ")" << endl;

sort( v1.begin( ), v1.end( ),cmp );
cout << "Sorted vector v1 = ( " ;
for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
cout << (*Iter1)->n << " ";
cout << ")" << endl;
}

时间: 2024-08-25 04:51:39

vector 指针结果 排序的相关文章

【转】vector中对象指针的排序

原文:http://blog.csdn.net/tanlijun37/article/details/1948493 vector中对象指针的排序,初步想法是1: 把对象指针存到vector,重载bool operator(对象指针)2:用sort来排序例:class A{public:  bool operator(const A* temp)  {     return this->a < temp->a;  }  A(int a)  {    this->a = a;  } 

关于动态分配vector指针和使用shared_ptr的vector指针

动态分配的vector指针 vector<int> *get_num(int n) { vector<int> *pv = new vector<int>(n+1); int i , x; for(i = 0; i < n; i++) { cin>>x; <span style="background-color: rgb(255, 0, 0);">(*pv)[i] = (x); </span> } retu

二重指针实现排序

1 //双指针对十个数排序 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 #define N 8 6 //2017.3.5 7 int main() 8 { 9 //初始化数组 赋值N个数 用指针数组指向 10 int num[N]; 11 int *pNum[N]; 12 int **p = NULL; 13 for (int i = 0; i < N; i++) 14 { 15 num[i] = rand() % 100;/

vector,對string排序

這是vector中對string類型排序. 用寫比較函數的方法 #include<cstdio> #include<cstring> #include<string> #include<iostream> #include<algorithm> #include<vector> using namespace std; //比較函數,升序排序 bool cmp(const string &x,const string &

指针选择排序法,10个整数从小到大排序

//指针方法,选择排序法对10个int按从小到大排列 #include<stdio.h> main() { int n=10,i,b,a[10],*p; int sort(int *q,int n); // scanf("%d",&10); for(p=a;p<a+10;p++)//键盘输入数组元素 scanf("%d",p); p=a;//超重要!!!!!!!!!!不能忘 sort(p,10);//调用函数 for(p=a;p<a+

c++ vector 指针返回值问题

关于Vector作为函数的返回值,有几点需要说明: 1.首先如果Vector是一个局部的变量,那么返回该Vector的引用是十分危险的,因为在Vector超出作用域的,会自动调用相关的析构函数(~Vector()),如果Vector中存放的是类(ClassName)对象的指针,则不会调用相关的类ClassName析构函数,只会把相关的空间清空(也就是Vector.size()=0),这样会造成内存泄露.但是如果Vector中存放的是类(ClassName)的对象,则会调用相关的类ClassNam

C++STL二维vector指定位置排序

自己一直用vector 二维的存储变量 有时候需要进行排序 在此 为记录一下方法 废话少说直接上代码 #include <QCoreApplication> #include <iostream> using namespace std; #include <vector> #include <string> #include <algorithm> #include <QDateTime> #include <QTimer&g

返回vector指针案例

void prog1_static(void) { int pos = 9; // elem will hold the element's value vector<int> *elem; elem = fibon_seq2(pos); cout << elem->size() << endl; for (int in = 0; in < elem->size(); in++) { cout << elem[0][in] <<

结构体指针排序

输入不超过30名学生的信息,包括姓名,单科分数,出生年月,对其排序后输出. 运用知识点:结构体.指针.排序.函数. 1 #include<stdio.h> 2 #include<string.h> 3 4 struct birth 5 { 6 int y; 7 int m; 8 int d; 9 }; 10 struct student 11 { 12 int num; 13 char name[20]; 14 double score; 15 struct birth birth