struct などのオブジェクト型でできたvectorのソート方法
std::sort( v.begin(), v.end() ) ではなく、std::sort( v.begin(), v.end(), func ) を使う。
#include <stdio.h> #include <vector> #include <iostream> using namespace std; struct DOMAINS { char szDomain[512]; }; bool func(const DOMAINS& x, const DOMAINS& y){ return ( strcmp( x.szDomain, y.szDomain ) < 0 ); } int main(){ vector <DOMAINS> vectDomains; DOMAINS dm1, dm2, dm3; strcpy( dm1.szDomain, "bbb.com" ); strcpy( dm2.szDomain, "azzzz.co.jp" ); strcpy( dm3.szDomain, "cc.jp" ); vectDomains.push_back( dm1 ); vectDomains.push_back( dm2 ); vectDomains.push_back( dm3 ); std::sort(vectDomains.begin(), vectDomains.end(), func); for(int i=0; i<3; i++){ printf( "%s", vectDomains[i].szDomain ); } return 0; }