LINUX.ORG.RU

допустим есть на C++  :

struct pair
{
int id;
string name;
pair ( const int &ii, const string &is ) : id ( ii ), name ( is ) {;}
};

bool operator < ( const pair &p1, const pair &p2 ) { return p1.id < p2.id; }

vector<pair> vecP;
for ( unsigned int i = 0 ; i < vecP.size() ; ++i )
    vecP.push_back ( pair ( i, "test") );

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

Как такое сделать на php? 

anonymous
()
Ответ на: комментарий от anonymous

> pair ( const int &ii, const string &is )
В данном случае ссылка на POD это бред

> vector<pair> vecP;
> for ( unsigned int i = 0 ; i < vecP.size() ; ++i )

Никогда не выполнится, кроме того i должно иметь тип
vector<pair>::size_type

И еще для pair должен быть явно определен конструктор по умолчанию.

aton
()
Ответ на: комментарий от aton

Это значит что в пхп такое никак не сделать? :)

anonymous
()
Ответ на: комментарий от aton

> В данном случае ссылка на POD это бред

cref на POD - не бред, а вот cref на int - согласен.

> i должно иметь тип vector<pair>::size_type

23.1 X::size_type - unsigned integral type так что некритично совсем.

> И еще для pair должен быть явно определен конструктор по умолчанию.

почему? vector не требует чтобы элемент был DefaultConstructible, оно надо только если вы используете range ctors или resize().

AnToXa
()
Ответ на: комментарий от AnToXa

> 23.1 X::size_type - unsigned integral type так что некритично совсем.

Я бы не стал зашиваться на то что это обязательно будет unsignded int

> почему? vector не требует чтобы элемент был DefaultConstructible, оно надо только если вы используете range ctors или resize().

Хех что значит не требует? Вы сами указали на range ctors, resize, а
они являются частью vector (кроме того range ctor давольно распросранен
применении). Замечание было сделано, дабы огородить от возможных
ошибок, не всем известно что дефолтный конструктор генерится, только
если нет никакого другого.





aton
()
Ответ на: комментарий от aton

> Я бы не стал зашиваться на то что это обязательно будет unsignded int

вообще согласен конечно, хотя и что там еще может быть :)

> Хех что значит не требует? .... > []

то и значит, не требует. а вот если использовать range ctors, то компилятор все напомнит :) но я опять согласен, напомнить полезно :)

AnToXa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.