gpt4 book ai didi

c++ - 泛化标准库容器的输出函数

转载 作者:行者123 更新时间:2023-11-28 00:39:22 25 4
gpt4 key购买 nike

我玩过模板。使用它们可以从容器类型中抽象出来,例如下面的 vector 可以是任何 POD 类型。

template<class T>
void show(vector<T> &a) {
typename vector<T>::iterator end = a.end(), start = a.begin();
for(start; start!= end; start++) {
cout<<*start<<" ";
}
}

我是这样用的: vector<int> vect_storage;
show(vect_storage);

我想知道是否有可能创建这样的显示方法,它不仅可以显示 vector ,还可以显示 map 、列表、从 STL 库中出队?

最佳答案

不是将容器作为参数,而是采用一对迭代器:

template <typename Iter>
void show(Iter first, Iter last) {
while (first != last) {
cout << *first++;
}
}

vector<int> v;
show(v.begin(), v.end());
deque<int> d;
show(d.begin(), d.end());
int arr[10];
show(begin(arr), end(arr));

关于c++ - 泛化标准库容器的输出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19601275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com