g*****u 发帖数: 298 | 1 想打印一个STL container里的元素,但不知道是哪种container,应该怎么写?写成下
面的G++编译不通过,VC8可以。
template
void printContainer(ostream& os, const T& con)
{
T::const_iterator iter = con.begin();
while(iter != con.end())
{
os<<*iter<<" ";
iter++;
}
os<
} | y*******g 发帖数: 6599 | 2
加上 typename
【在 g*****u 的大作中提到】 : 想打印一个STL container里的元素,但不知道是哪种container,应该怎么写?写成下 : 面的G++编译不通过,VC8可以。 : template : void printContainer(ostream& os, const T& con) : { : T::const_iterator iter = con.begin(); : while(iter != con.end()) : { : os<<*iter<<" "; : iter++;
| y*******g 发帖数: 6599 | 3 也可以用for_each
【在 g*****u 的大作中提到】 : 想打印一个STL container里的元素,但不知道是哪种container,应该怎么写?写成下 : 面的G++编译不通过,VC8可以。 : template : void printContainer(ostream& os, const T& con) : { : T::const_iterator iter = con.begin(); : while(iter != con.end()) : { : os<<*iter<<" "; : iter++;
| a*n 发帖数: 32 | 4 How about use copy?
template
void printContainer(ostream& os,const T& con)
{
ostream_iterator out(os," ");
copy(con.begin(), con.end(),out);
} |
|