PDA

View Full Version : مبتدی: مشکل با فراخوانی کتابخانه ها



plague
شنبه 10 اردیبهشت 1390, 18:56 عصر
سلام
من مدتی قبل بر حسب نیازم کمی c++ یاد گرفتم ولی همیشه اونچیزایی که لازم داشتم رو خوندم و از پایه یاد نگرفتم
حالا تصمیم گرفتم که بشینم از اول بخونم
یه مشکل با کتابخونه ها برخوردم این فیلم آموزشی که من نگاه میکنم مثلااینطوری استفاده میکنه


# include "map.h"
#include "set.h"

ولی من با استفاده از اینا به مشکل برمیخورم و اررور میگرم که این فایل ها پیدا نشدن
برای همین اینجوری استفاده میکنم


# include <map>
#include <set>

اینجوری مشکل حل میشه ولی یه مشکل دیگه بوجود میاد !
وقتی که یه شی رو میسازه مثلا

set <int> ss;
متد هایی که میشه استفاده کرد با اونایی که تو رفرنسم هست فرق میکنه
مثلا اون itrator رو اینجوری استفاده میکنه


set<int>::itrator itr = ss.itrator();
while(itr.hasnext()){

cout<<itr.next();
}



ولی این ss که من میسازم اصلا متد itrator جزو لیست متد هاش نیست و من مجبورم این کد رو اینجوری پیاده کنم


set<int>::itrator itr = ss.begin();
while(!itr.end()){

cout<<*itr;
}




یا مثلا اون map رو به راحتی اینجوری میسازه

map<int> mm;
ولی من که میخام بسازم 10 تا ! آرگومان میخاد و به int خالی راضی نمیشه !

mehdi.mousavi
یک شنبه 11 اردیبهشت 1390, 10:27 صبح
سلام.
بدون شک در اون فیلم آموزشی، set.h و map.h به STL اشاره نمیکنن و Library جداگانه ای هستن. Map در STL، حداقل نیاز به دو پارامتر داره: Key/Value در صورتیکه کد شما فقط یک Data Type گرفته... یا فرضا متود hasnext روی iterator در STL وجود نداره و باید همونطوریکه اشاره کردید از end استفاده بشه... بنابراین باید ابتدا ببینید فیلم آموزشی در مورد چه Framework یا Library ای صحبت میکنه، سپس در اون مسیر گام بردارید.

موفق باشید.