نمایش نتایج 1 تا 6 از 6

نام تاپیک: وکتور ها

  1. #1

    وکتور ها

    چندتا سوال داشتم درباره وکتور میخواستم بپرسم :
    1. اگر بخوام با () cin.get ورودی به صورت رشته بگیرم و اونو توی وکتور ذخیره کنم باید چیکار کنم ؟ انگار () cin.get وکتور قبول نمیکنه چرا ؟؟؟
    2. اگر بخوام عناصر توی وکتورم رو نمایش بدم باید چطور اینکار رو بکنم ؟؟؟؟
    3. زمانی که من از ورودی با استفاده از حلقه کاراکتر به کاراکتر میگرم وقتی بعد از اجرای برنامه ام مثلا برای ذخیره اسم داخل وکتورم که به صورت کاراکتر به کاراکتر وروردی میگیره اینتر رو میزنم برنامه ام اخطار میده و بعد یه قسمتی از هدر فایل وکتور رو باز میکنه و به اون اشاره میکنه نمیدونم چرا ؟؟؟ اینم تصویر اخطار
    4. میخوام وکتورم رو که رشته رو توی خودش نگه میداره مرتب سازی کنم اگر بخوام از روش مرتب سازی shell استفاده کنم با توجه به رشته بودن وکتور چجور این کار انجام شدنی هست ؟؟
    کسی اینجا با زبان سی ++ آشنایی داره ؟؟ زمان کمی برای پروژه ام مونده لطفا کمکم کنید ؟؟
    ممنون از اساتید
    آخرین ویرایش به وسیله mr.keeper01 : شنبه 29 اردیبهشت 1397 در 14:42 عصر

  2. #2

    نقل قول: وکتور ها

    کسی جواب سوالمو نمیده بابا یکی جواب بده دیگه

  3. #3

    نقل قول: وکتور ها

    نقل قول نوشته شده توسط mr.keeper01 مشاهده تاپیک
    کسی جواب سوالمو نمیده بابا یکی جواب بده دیگه
    تستم کردم!
    البته می تونید الگوریتم سورت هم خودتون بنویسید
    به دو روش هم خروجی را چاپ میکنه. Iterator و For_Each and Lambda Exp

    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <string.h>

    int main() {
    std::vector<std::string> vecStr ;
    std::string vstr = "" ;
    char ch;
    do{
    std::cin >> vstr ;
    vecStr.push_back(vstr);
    std::cout << "Enter another(y/n)?";
    std::cin >> ch;
    std::cin.ignore (std::numeric_limits<std::streamsize>::max (),'\n');
    }while(ch == 'y' || ch =='Y');

    sort(begin(vecStr),end(vecStr),
    [](MyStructs* mys1,MyStructs* my2){
    return mys1->getName () < my2->getName ();
    });

    for_each(vecStr.begin(), vecStr.end(),[](std::string str) {
    std::cout<<str<< " , " ;
    });
    std::cout << std::endl ;
    for(std::vector<std::string>::const_iterator ci=vecStr.cbegin (); ci !=vecStr.cend (); ++ci){
    std::cout << "vector element -> " << *ci << std::endl ;
    }
    return 0;
    }
    آخرین ویرایش به وسیله farhad_shiri_ex : یک شنبه 06 خرداد 1397 در 17:42 عصر

  4. #4

    نقل قول: وکتور ها

    نقل قول نوشته شده توسط mr.keeper01 مشاهده تاپیک
    کسی جواب سوالمو نمیده بابا یکی جواب بده دیگه
    اینطوری هم می تونید سورت کنید.!
    الگوریتم شل بهینه شده درجی البته بدون عملیات تقسیم بندی...

    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <string.h>
    #include <memory.h>
    #include <bits/unique_ptr.h>

    using namespace std ;

    struct MyStructs
    {
    static void destory(MyStructs* my){
    delete my ;
    }
    static unique_ptr<MyStructs , decltype(&destory)> create(int k, string& s){
    return unique_ptr<MyStructs , decltype(&destory)>(new MyStructs(k,s) , &destory);
    }
    int key;
    string stringValue;
    MyStructs(int k, const string& s) : key(k), stringValue(s) {}
    private :
    MyStructs(){}
    ~MyStructs(){}

    };

    void customSort(vector<MyStructs*>& vect){
    for(vector<MyStructs*>::const_iterator ci=vect.cbegin(); ci !=vect.cend(); ++ci){
    for(vector<MyStructs*>::const_iterator ji=ci; ji !=vect.cend(); ++ji){
    if(vect.size()>0 && (*ji)->stringValue.compare((*ci)->stringValue) < 0){
    auto tmp = MyStructs::create((*ci)->stringValue.size(),(*ci)->stringValue);
    (*ci)->stringValue = (*ji)->stringValue;
    (*ji)->stringValue = (*tmp.get()).stringValue;
    (*ci)->key = (*ji)->key;
    (*ji)->key = (*tmp.get()).key;
    }
    }
    }
    }

    int main() {
    vector<MyStructs*> vecStr ;
    string vstr ;
    char ch;
    do{
    cin >> vstr ;
    auto myStr = new MyStructs(vstr.size(),vstr);
    vecStr.push_back(myStr);
    cout << "Enter another(y/n)?";
    cin >> ch;
    cin.ignore (numeric_limits<streamsize>::max (),'\n');
    }while(ch == 'y' || ch =='Y');
    cout << endl << endl ;
    cout << "before sort vector collection..." << endl ;
    for_each(vecStr.begin(), vecStr.end(),[](MyStructs* str) {
    std::cout<<(*str).stringValue << " , " ;
    });

    customSort(vecStr);
    cout << endl << endl << endl ;
    cout << "after sort vector collection..." << endl ;
    for(vector<MyStructs*>::const_iterator ci=vecStr.cbegin (); ci !=vecStr.cend (); ++ci){
    cout << "vector element -> " << (*ci)->stringValue << endl ;
    }
    return 0;
    }

    لازم به توضیح بود بگید...
    آخرین ویرایش به وسیله farhad_shiri_ex : یک شنبه 30 اردیبهشت 1397 در 14:08 عصر

  5. #5

    نقل قول: وکتور ها

    سلام ممنون الگوریتم شلی که گفتین مفید بود اگر بخوام ترکیبی از رشته و عدد صحیح رو مرتب کنه جواب میده ؟؟ من یه لیست از دانشجو ها رو توی برنامه ام دارم که اطلاعات کاملی ازشون داره میخوام این لیست رو مرتب کنه این روش مرتب سازی شل برای این لیست جواب گو هست ؟؟

    یه سوال دیگه ایا میشه به پارامتر ورودی یه متد از کلاس یه شی داد که از یه کلاس دیگه هست ؟؟؟؟ به این صورت که نوشتم : courses c1 رو به عنوان پارامتر به متد add_Course دادم



    class student
    {
    private :
    string Name;
    string Field;
    string Level;
    int ID;
    double Average;
    vector<string>Course;

    public:
    void set_Name(string name) { Name = name ;}
    string get_Name() { return Name; }

    void set_ID(int id) { ID = id; }
    int get_ID() { return ID; }

    void set_Field(string field) { Field = field; }
    string get_Field() { return Field; }

    void set_Level(string level) { Level = level; }
    string get_Level() { return Level; }

    void set_Average(double average) { Average = average; }
    double get_Average() { return Average; }

    void add_Course(courses c1) { Course.push_back(c1); }
    vector <string>get_Course() { return Course; }
    /*void show_course()
    {
    cout << "\n\n" << Course.size() << "\n\n";
    }*/

    };
    vector <student> information;
    //void student1 () {cout << information.size() << "\n\n";}


    class courses
    {
    private :
    string name;
    int code , num , unit;

    public :
    void add_Name (string course){name = course ;}
    string get_Name () {return name ;}

    void add_Code (int code) {code = code ;}
    int get_Code () {return code ;}

    void add_Num (int nomre) {num = nomre ;}
    int get_Num () {return num ;}

    void add_Unit (int unit) {unit = unit ;}
    int get_Unit () {return unit;}
    };





  6. #6

    نقل قول: وکتور ها

    اگر بخوام ترکیبی از رشته و عدد صحیح رو مرتب کنه جواب میده ؟؟
    بله جواب میده به سادگی.!!

    ایا میشه به پارامتر ورودی یه متد از کلاس یه شی داد که از یه کلاس دیگه هست ؟؟؟؟
    بله امکانش هست.


    void add_Course(courses c1) { Course.push_back(c1); }
    در خط بالا بهتره رفرنس شی را ارسال کنید وگرنه کپی های غیر ضروری به وجود می آید.

    یعنی اینطوری...

    void add_Course(courses& c1) { Course.push_back(c1); }
    وبعد شما type وکتور تون را string تعریف کردید بعد دارید یک شی نامرتبط بهش ارسال میکنید...!!!

    vector<string>Course;
    void add_Course(courses c1) { Course.push_back(c1); }
    خوب یا type وکتور را تغییر بدید به نوع کلاسی که می خواهید ویا باید یک شی از نوع string داخلش ذخیره کنید.

تاپیک های مشابه

  1. سوال: ظرفیت در وکتور ها
    نوشته شده توسط sourcecode در بخش برنامه نویسی در محیط QT و هم خانواده هایش
    پاسخ: 3
    آخرین پست: شنبه 08 اسفند 1394, 13:15 عصر
  2. سوال: ظرفیت در وکتور ها
    نوشته شده توسط sourcecode در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 1
    آخرین پست: دوشنبه 19 بهمن 1394, 17:52 عصر
  3. سوال: ظرفیت در وکتور ها
    نوشته شده توسط sourcecode در بخش برنامه نویسی با Borland C++‎ Builder
    پاسخ: 1
    آخرین پست: دوشنبه 19 بهمن 1394, 17:51 عصر
  4. ذخیره داده ها در آرایه و یا وکتور
    نوشته شده توسط imdeveloper در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 4
    آخرین پست: شنبه 05 دی 1394, 08:54 صبح
  5. استفاده از وکتور ها در طراحی وب سایت
    نوشته شده توسط aliarya در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: چهارشنبه 10 شهریور 1389, 00:18 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •