Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] sottrazione.. di vector...

    Ho due vector:

    Uno (a) contenente:

    5,11,13,17,18,21,23,24,24,26,32,34,34,45,47,52,52, 55,59,62,62,62,63,63,68,70,70,74,77,79,81,83,88,

    L'altro (b) contenente:

    1,2,4,5,6,9,10,11,13,14,15,16,17,18,21,23,24,25,26 ,27,30,32,33,34,36,37,39,40,41,44,45,46,47,48,49,5 1,52,53,55,59,61,62,63,64,65,66,68,69,70,73,74,76, 77,78,79,81,82,83,84,86,87,88,90,

    Dovrei ottenerne la differenza... (b-a) e salvare il risultato in un terzo vector (c)

    tutto questo in automatico...

    perchè i contenuti dei due vector possono cambiare dinamicamente...

    Qualche idea?


    Grazie grazie grazie


  2. #2
    In che senso fare la sottrazione tra vettori? Vuoi che l'array C sia composto dagli elementi che stanno in A ma non in B (l'usuale sottrazione tra insiemi quindi, A\B)?


    edit: Suppongo sia così:

    Codice PHP:
    #include <vector>
    #include <iostream>

    using namespace std;

    void print(vector<intvc

        for(
    vector<int>::iterator i vc.begin(); != vc.end(); i++) 
            
    cout << *<< "|"
        
    cout << endl


    int main() 
    {
        
    vector<inta;
        
    vector<intb;
        
    vector<intc;
        
        for(
    int i 1<= 10i++)
            
    a.push_back(i);
        for(
    int j 2<= 10j+=2)
            
    b.push_back(j);
        
        for(
    vector<int>::iterator i a.begin(); != a.end(); i++)
        {
            if(
    count(b.begin(), b.end(), *i) == 0// se l'elemento non è in B, fa parte di A\B
                
    c.push_back(*i);
        }
        
        
    cout << "A" << endl;
        print(
    a);
        
    cout << endl;
        
        
    cout << "B" << endl;
        print(
    b);
        
    cout << endl;

        
    cout << "C" << endl;
        print(
    c);
        
    cout << endl;    
        

    Spero di aver capito bene.


  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    si si ci ho pensato anche io infatti...

    Originariamente inviato da antotan
    In che senso fare la sottrazione tra vettori? Vuoi che l'array C sia composto dagli elementi che stanno in A ma non in B (l'usuale sottrazione tra insiemi quindi, A\B)?


    edit: Suppongo sia così:

    Codice PHP:
    #include <vector>
    #include <iostream>

    using namespace std;

    void print(vector<intvc

        for(
    vector<int>::iterator i vc.begin(); != vc.end(); i++) 
            
    cout << *<< "|"
        
    cout << endl


    int main() 
    {
        
    vector<inta;
        
    vector<intb;
        
    vector<intc;
        
        for(
    int i 1<= 10i++)
            
    a.push_back(i);
        for(
    int j 2<= 10j+=2)
            
    b.push_back(j);
        
        for(
    vector<int>::iterator i a.begin(); != a.end(); i++)
        {
            if(
    count(b.begin(), b.end(), *i) == 0// se l'elemento non è in B, fa parte di A\B
                
    c.push_back(*i);
        }
        
        
    cout << "A" << endl;
        print(
    a);
        
    cout << endl;
        
        
    cout << "B" << endl;
        print(
    b);
        
    cout << endl;

        
    cout << "C" << endl;
        print(
    c);
        
    cout << endl;    
        

    Spero di aver capito bene.

    Sono ricorso a qualcosa di analogo!

    codice:
    for (int g=0; g<vector1.size();g++)  {   
       for (int h=0; h<vector2.size();h++) {   
       
       if (vector1[g]==vector2[h]) {
       
       //rimuovi dal vector... vector1
       
       remove(vector1.begin(), vector2.end(), vector1[g]); 
       
       
       }
       }
       }
    E ci sono arrivato da solo! wow che soddisfazione!



    Comunque grazie 1000 anche per il tuo contributo amico!


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.