[c++] deque in deque

Pagina: 1
Acties:
  • 37 views sinds 30-01-2008

  • tekno
  • Registratie: September 2001
  • Laatst online: 29-07 12:33
Ik ben op dit moment bezig met het inladen van bepaalde gegevens uit een tekstbestand. Het zou daarbij zeer handig zijn als ik alle losse door spaties gescheide woorden los zou kunnen benaderen.

Ik ben pas sinds zeer kort met c++ bezig, omdat ik deze opdracht percee in c++ moet gaan maken. (computer waar de opdracht uiteindelijk op uitgevoerd gaat worden heeft geen pascal compiler geinstalleerd en dat zal ook niet gaan gebeuren)
Dus mijn excuses bij gebrek aan kennis.
Ik geprobeer via sgi al bij stl te kijken en bij google of ik iets kon vinden. En ik heb globaal de boeken thinking in c++ de e-book versies doorgenomen. Ik blijf echter met een probleem zitten,zelfs na het gebruiken van de search. En dat is als volgt:

ik wil dus hebben:
deque< deque > basisdag;

nou ging ik ervan uit dat ik dus op de volgende manier deze kon vullen:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
deque< deque<string> > basisdag;
deque<string> cur_regel;

'open bestand enz'
while(getline(stationsinput, in_regel))
  {
    int spatie_pos;
    int index = 0;
    bool done = false;
    
    while (!done)
    {
      if ((spatie_pos = in_regel.find(" ")) == string::npos)
      {
        cur_regel.push_front(in_regel);
        done = true;
      }
      else
      {
        if ((in_regel.substr(0,spatie_pos))!= " ")
        {
          cur_regel.push_front(in_regel.substr(0,spatie_pos));
        }
        in_regel.erase(0,spatie_pos+1);
      }
    }
    basisdag.push_front(cur_regel);
  }

while(basisdag.size > 0)
  {
    cur_regel = basisdag.pop_back;
    while(cur_regel.size() > 0)
    { 
      cout << "the word is: ";
      cout << cur_regel[cur_regel.size()-1] << endl;
      cur_regel.pop_back();
    }
  }

Maar dit geeft dus op het laatste stuk (het weer uitlezen ervan een foutmelding, en ik snap er dus even helemaal geen .... meer van. Dus ik hoop dat iemand mij op mijn waarschijnlijke simpele fout kan wijzen.)

even code aangepast, had een kleine tikfout gemaakt bij het overnemen.

[ Voor 10% gewijzigd door .oisyn op 17-09-2003 23:05 ]


  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
Handig zou zijn om de foutmelding erbij te zetten. Maar ik denk dat ik 'm zo wel zie:
cur_regel_nr.size()

cur_regel_nr is volgens mij niet gedeclareerd (kan zijn dat ik 'm ergens mis)

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • tekno
  • Registratie: September 2001
  • Laatst online: 29-07 12:33
cur_regel = basisdag.pop_back;

Deze regel geeft de foutmelding, deze is als volgt:
no match for `std::deque<std::string, std::allocator<std::string>

wat voor mij toch net iets te cryptisch is om te begrijpen

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik heb van je code tag even =c++ erbij gezet voor de highlighting ;)
maar wat is je foutmelding precies? Want je kan niet van ons verwachten dat wij het even door onze compiler gaan halen om het er zelf uit te halen

.edit:
C++:
1
 cur_regel = basisdag.pop_back;


daar ben je iig de haakjes vergeten

[ Voor 19% gewijzigd door .oisyn op 17-09-2003 23:07 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • tekno
  • Registratie: September 2001
  • Laatst online: 29-07 12:33
no match for `std::deque<std::string, std::allocator<std::string>
is dus mijn foutmelding, zie vorige post.

edit 1:
Dat is ook verder de enige foutmelding die ik krijg

edit 2:
zal ze proberen toe te voegen moment

[ Voor 45% gewijzigd door tekno op 17-09-2003 23:09 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

oh, die post had ik niet gezien :) zie mijn vorige edit

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

2 regels daarboven ben je eveneens haakjes vergeten. Wel een beetje slordig hoor, je kunt in de documentatie zien dat het functies zijn, geen variabelen

[ Voor 50% gewijzigd door .oisyn op 17-09-2003 23:11 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • tekno
  • Registratie: September 2001
  • Laatst online: 29-07 12:33
47 C:\main.cpp no match for `std::deque<std::string,

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <stdlib.h>
#include <string>
#include <fstream>
#include <deque>

using namespace std;

int main()
{
   
  string in_regel;
  deque<deque<string> > basisdag;
  deque<string> cur_regel;
  
  ifstream stationsinput;
  stationsinput.open("basisdag.txt");
  int regel_nr = 0;

  while(getline(stationsinput, in_regel)) 
  { 
    int spatie_pos; 
    int index = 0; 
    bool done = false; 
     
    while (!done) 
    { 
      if ((spatie_pos = in_regel.find(" ")) == string::npos) 
      { 
        cur_regel.push_front(in_regel); 
        done = true; 
      } 
      else 
      { 
        if ((in_regel.substr(0,spatie_pos))!= " ") 
        { 
          cur_regel.push_front(in_regel.substr(0,spatie_pos)); 
        } 
        in_regel.erase(0,spatie_pos+1); 
      } 
    } 
    basisdag.push_front(cur_regel); 
  } 

while(basisdag.size() > 0) 
  { 
    cur_regel = basisdag.pop_back(); 
    while(cur_regel.size() > 0) 
    {  
      cout << "the word is: "; 
      cout << cur_regel[cur_regel.size()-1] << endl; 
      cur_regel.pop_back(); 
    } 
  }
  cin.get();
  return 0;
}

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 04:06

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ja uhm, dat is wel heel basic hoor. Even in de documentatie kijken bijvoorbeeld, daar zie je dat pop_back geen returnwaarde heeft.

Ik gooi deze topic op slot, want eigenlijk zit je gewoon maar hele simpele RTFM vragen te stellen

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.