作者cory8249 (Cory)
看板C_and_CPP
標題[問題] STL Container Reference ?
時間Fri Apr 6 03:35:44 2012
請問有 Container Reference (容器參照) 這種東西嗎 ??
因為我想傳遞容器到函式裡面
像是做一個函式, 可以增加/移除指定的資料
http://codepad.org/izwgEq2l
#include <list>
#include <iostream>
using namespace std;
void add(list<int> &list, int num)
{
list.push_back(num);
}
void remove(list<int> &ilist, int num)
{
list<int>::iterator iter = ilist.begin();
while(iter != ilist.end()){
if(*iter == num){
iter = ilist.erase(iter);
}else ++iter;
}
}
int main()
{
list<int> mylist;
for(int i=1; i<=10; ++i)
add(mylist, i);
cout << "After adding elements." << endl;
list<int>::iterator iter = mylist.begin();
while(iter != mylist.end()){
cout << *iter++ << endl;
}
cout << endl << "After deleting elements." << endl;
for(int i=0; i<=15; i+=2)
remove(mylist,i);
iter = mylist.begin();
while(iter != mylist.end()){
cout << *iter++ << endl;
}
}
功能看似一切都很正常
所以是可以這樣用的意思嗎 ??
因為書上好像都沒看到類似用法 ?
怕說會不會有問題之類的~
不曉得這樣子寫法好不好 ??
麻煩大家不吝指正~ 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.221.54
推 LPH66:沒什麼問題啊 它就是一個參照到容易的 ref 而已 04/06 03:45
→ LPH66:不如說這個方式還滿常用的 04/06 03:45
→ LPH66:s/容易/容器/ (我在打什麼...) 04/06 03:46
原來可以這樣用 ~ 謝謝
※ 編輯: cory8249 來自: 140.114.221.54 (04/06 16:49)