假设我有以下片段:
int compareFoo(std::string** a, std::string** b) {
return (**a).compare(**b);
}
int main() {
std::string** foo = new std::string*[3];
foo[0] = new std::string("a");
foo[1] = new std::string("c");
foo[2] = new std::string("b");
sort(foo,foo+3,compareFoo);
for (int i = 0; i < 3; i++) {
std::cout << *foo[i] << std::endl; // print acb
}
}
如果我遗漏了sort的第三个参数(比较) ,它会根据它们的内存地址给我排序的 3 个字符串,这不是我想要的。但是我如何参数化compareFoo函数,以便它不会比较内存地址。
void sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp);
cplusplus.com 上对Sort的描述很模糊,给出的例子很简单。既然它需要一个Iterator,这是否意味着我只使用站立容器?谢谢