/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Fibonacci heap i c++
Fra : Michael Birkmose


Dato : 13-05-03 10:06

Hejsa,

Er der nogen der kender et sted hvor man kan finde en god gratis
implementation af fibonacci heaps i c++?
Jeg har fundet noget til c, men hvis jeg prøver at compile det med g++
klager den over at det ikke overholder ansi c++ standarden.
(http://resnet.uoregon.edu/~gurney_j/jmpc/fib.html)

Best regards,
Michael


 
 
Michael Rasmussen (13-05-2003)
Kommentar
Fra : Michael Rasmussen


Dato : 13-05-03 10:36

On Tue, 13 May 2003 11:05:30 +0200, Michael Birkmose wrote:

> Jeg har fundet noget til c, men hvis jeg prøver at compile det med g++
> klager den over at det ikke overholder ansi c++ standarden.
Har du prøvet med gcc i stedet for? g++ er c++, mens gcc er ansi C.
--
Hilsen/Sincerely, Michael Rasmussen

En windows admin er en person, for hvem den største bedrift er, at
lave konfiguration af serveren med trial and error via en gui.


Michael Birkmose (13-05-2003)
Kommentar
Fra : Michael Birkmose


Dato : 13-05-03 10:42

Michael Rasmussen wrote:
> On Tue, 13 May 2003 11:05:30 +0200, Michael Birkmose wrote:
>
>
>>Jeg har fundet noget til c, men hvis jeg prøver at compile det med g++
>>klager den over at det ikke overholder ansi c++ standarden.
>
> Har du prøvet med gcc i stedet for? g++ er c++, mens gcc er ansi C.
jep og det dur.
Men jeg har behov for at kunne bruge det fra noget c++ kode :(


Troels Thomsen (13-05-2003)
Kommentar
Fra : Troels Thomsen


Dato : 13-05-03 11:11

> >
> > Har du prøvet med gcc i stedet for? g++ er c++, mens gcc er ansi C.
> jep og det dur.
> Men jeg har behov for at kunne bruge det fra noget c++ kode :(
>

Hvad med at kompilere fibonacci i gcc så du får en lib fil.
I C++ koden inkluderer du headeren og kompilerer din kode
I linkeren skriver du de to lib filer

P.s. er ikke stærk i gcc/g++ i praksis

mvh Troels



Michael Birkmose (13-05-2003)
Kommentar
Fra : Michael Birkmose


Dato : 13-05-03 11:13

Troels Thomsen wrote:
>>>Har du prøvet med gcc i stedet for? g++ er c++, mens gcc er ansi C.
>>
>>jep og det dur.
>>Men jeg har behov for at kunne bruge det fra noget c++ kode :(
>>
>
>
> Hvad med at kompilere fibonacci i gcc så du får en lib fil.
> I C++ koden inkluderer du headeren og kompilerer din kode
> I linkeren skriver du de to lib filer
>
> P.s. er ikke stærk i gcc/g++ i praksis
>
> mvh Troels
>
>
Hejsa,

Det hjælper vel ikke så meget nar nu de library jeg ville lave har et
interface, som c++ ikke tillader?


Martin Moller Peders~ (13-05-2003)
Kommentar
Fra : Martin Moller Peders~


Dato : 13-05-03 11:36

In <b9qges$hl5$1@sunsite.dk> Michael Birkmose <birkmose@cs.auc.dk> writes:

>Troels Thomsen wrote:
>>>>Har du prøvet med gcc i stedet for? g++ er c++, mens gcc er ansi C.
>>>
>>>jep og det dur.
>>>Men jeg har behov for at kunne bruge det fra noget c++ kode :(
>>>
>>
>>
>> Hvad med at kompilere fibonacci i gcc så du får en lib fil.
>> I C++ koden inkluderer du headeren og kompilerer din kode
>> I linkeren skriver du de to lib filer
>>
>> P.s. er ikke stærk i gcc/g++ i praksis
>>
>> mvh Troels
>>
>>
>Hejsa,

>Det hjælper vel ikke så meget nar nu de library jeg ville lave har et
>interface, som c++ ikke tillader?


Proev at poste koden her. Det kan ikke tage lang tid at fixe det, saa
det kan kompilere med g++, hvis det kompilerer med gcc.

/Martin

Michael Birkmose (13-05-2003)
Kommentar
Fra : Michael Birkmose


Dato : 13-05-03 12:32

Martin Moller Pedersen wrote:
> In <b9qges$hl5$1@sunsite.dk> Michael Birkmose <birkmose@cs.auc.dk> writes:
>
>
>>Troels Thomsen wrote:
>>
>>>>>Har du prøvet med gcc i stedet for? g++ er c++, mens gcc er ansi C.
>>>>
>>>>jep og det dur.
>>>>Men jeg har behov for at kunne bruge det fra noget c++ kode :(
>>>>
>>>
>>>
>>>Hvad med at kompilere fibonacci i gcc så du får en lib fil.
>>>I C++ koden inkluderer du headeren og kompilerer din kode
>>>I linkeren skriver du de to lib filer
>>>
>>>P.s. er ikke stærk i gcc/g++ i praksis
>>>
>>>mvh Troels
>>>
>>>
>>
>>Hejsa,
>
>
>>Det hjælper vel ikke så meget nar nu de library jeg ville lave har et
>>interface, som c++ ikke tillader?
>
>
>
> Proev at poste koden her. Det kan ikke tage lang tid at fixe det, saa
> det kan kompilere med g++, hvis det kompilerer med gcc.
>
> /Martin
Hejsa,

Først er der kommandoen jeg forsøger, og næst er der cat -n fibtest.c
Det ser ud til at g++ har problemmer med (void)* :(

------------------
birkmose@fire2/fib-1.1> g++ -I. -o fibtest fibtest.c libfib.a
fibtest.c: In function `int main()':
fibtest.c:20: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:21: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:22: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:23: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:24: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:29: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:31: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:32: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:33: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:38: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:39: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:44: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:45: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:46: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:47: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:52: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:53: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:58: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:59: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:64: ANSI C++ forbids implicit conversion from `void *' in
argument passing
fibtest.c:69: ANSI C++ forbids implicit conversion from `void *' in
argument passing
--------------------------
1   #include <stdio.h>
2   #include <stdlib.h>
3   #include "fib.h"
4   
5   int main(void)
6   {
7      struct fibheap *a;
8      void *arr[10];
9      int i;
10   
11      a = fh_makekeyheap();
12      
13      for (i=1 ; i < 10 ; i++)
14       {
15    arr[i]= fh_insertkey(a,0,(void *)i);
16       printf("adding: 0 %d \n",i);
17       }
18   
19      printf(" \n");
20       fh_replacekey(a, arr[1],-1);
21    fh_replacekey(a, arr[6],-1);
22       fh_replacekey(a, arr[4],-1);
23    fh_replacekey(a, arr[2],-1);
24    fh_replacekey(a, arr[8],-1);
25      
26    printf("value(minkey) %d\n",fh_minkey(a));
27      printf("id: %d\n\n", (int)fh_extractmin(a));
28   
29       fh_replacekey(a, arr[7],-33);
30   /* -> node 7 becomes root node, but is still pointed to by node 6 */
31    fh_replacekey(a, arr[4],-36);
32       fh_replacekey(a, arr[3],-1);
33    fh_replacekey(a, arr[9],-81);    
34      
35    printf("value(minkey) %d\n",fh_minkey(a));
36    printf("id: %d\n\n", (int)fh_extractmin(a));
37      
38       fh_replacekey(a, arr[6],-68);
39    fh_replacekey(a, arr[2],-69);
40   
41    printf("value(minkey) %d\n",fh_minkey(a));
42    printf("id: %d\n\n", (int)fh_extractmin(a));
43   
44       fh_replacekey(a, arr[1],-52);
45    fh_replacekey(a, arr[3],-2);
46       fh_replacekey(a, arr[4],-120);
47    fh_replacekey(a, arr[5],-48);    
48   
49    printf("value(minkey) %d\n",fh_minkey(a));
50      printf("id: %d\n\n", (int)fh_extractmin(a));
51   
52       fh_replacekey(a, arr[3],-3);
53    fh_replacekey(a, arr[5],-63);
54   
55    printf("value(minkey) %d\n",fh_minkey(a));
56      printf("id: %d\n\n", (int)fh_extractmin(a));
57   
58       fh_replacekey(a, arr[5],-110);
59    fh_replacekey(a, arr[7],-115);
60   
61    printf("value(minkey) %d\n",fh_minkey(a));
62      printf("id: %d\n\n", (int)fh_extractmin(a));
63   
64    fh_replacekey(a, arr[5],-188);
65   
66    printf("value(minkey) %d\n",fh_minkey(a));
67      printf("id: %d\n\n", (int)fh_extractmin(a));
68   
69    fh_replacekey(a, arr[3],-4);
70   
71    printf("value(minkey) %d\n",fh_minkey(a));
72      printf("id: %d\n\n", (int)fh_extractmin(a));
73      
74    printf("value(minkey) %d\n",fh_minkey(a));
75    printf("id: %d\n\n", (int)fh_extractmin(a));
76   
77      fh_deleteheap(a);
78   
79      return 0;
80   }


Michael Birkmose (13-05-2003)
Kommentar
Fra : Michael Birkmose


Dato : 13-05-03 12:37

Michael Birkmose wrote:
> Martin Moller Pedersen wrote:
>
>> In <b9qges$hl5$1@sunsite.dk> Michael Birkmose <birkmose@cs.auc.dk>
>> writes:
>>
>>
>>> Troels Thomsen wrote:
>>>
>>>>>> Har du prøvet med gcc i stedet for? g++ er c++, mens gcc er ansi C.
>>>>>
>>>>>
>>>>> jep og det dur.
>>>>> Men jeg har behov for at kunne bruge det fra noget c++ kode :(
>>>>>
>>>>
>>>>
>>>> Hvad med at kompilere fibonacci i gcc så du får en lib fil.
>>>> I C++ koden inkluderer du headeren og kompilerer din kode
>>>> I linkeren skriver du de to lib filer
>>>>
>>>> P.s. er ikke stærk i gcc/g++ i praksis
>>>>
>>>> mvh Troels
>>>>
>>>>
>>>
>>> Hejsa,
>>
>>
>>
>>> Det hjælper vel ikke så meget nar nu de library jeg ville lave har et
>>> interface, som c++ ikke tillader?
>>
>>
>>
>>
>> Proev at poste koden her. Det kan ikke tage lang tid at fixe det, saa
>> det kan kompilere med g++, hvis det kompilerer med gcc.
>>
>> /Martin
>
> Hejsa,
>
> Først er der kommandoen jeg forsøger, og næst er der cat -n fibtest.c
> Det ser ud til at g++ har problemmer med (void)* :(
>
> ------------------
> birkmose@fire2/fib-1.1> g++ -I. -o fibtest fibtest.c libfib.a
> fibtest.c: In function `int main()':
> fibtest.c:20: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:21: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:22: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:23: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:24: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:29: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:31: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:32: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:33: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:38: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:39: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:44: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:45: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:46: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:47: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:52: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:53: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:58: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:59: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:64: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> fibtest.c:69: ANSI C++ forbids implicit conversion from `void *' in
> argument passing
> --------------------------
> 1 #include <stdio.h>
> 2 #include <stdlib.h>
> 3 #include "fib.h"
> 4
> 5 int main(void)
> 6 {
> 7 struct fibheap *a;
> 8 void *arr[10];
> 9 int i;
> 10
> 11 a = fh_makekeyheap();
> 12
> 13 for (i=1 ; i < 10 ; i++)
> 14 {
> 15 arr[i]= fh_insertkey(a,0,(void *)i);
> 16 printf("adding: 0 %d \n",i);
> 17 }
> 18
> 19 printf(" \n");
> 20 fh_replacekey(a, arr[1],-1);
> 21 fh_replacekey(a, arr[6],-1);
> 22 fh_replacekey(a, arr[4],-1);
> 23 fh_replacekey(a, arr[2],-1);
> 24 fh_replacekey(a, arr[8],-1);
> 25
> 26 printf("value(minkey) %d\n",fh_minkey(a));
> 27 printf("id: %d\n\n", (int)fh_extractmin(a));
> 28
> 29 fh_replacekey(a, arr[7],-33);
> 30 /* -> node 7 becomes root node, but is still pointed to by
> node 6 */
> 31 fh_replacekey(a, arr[4],-36);
> 32 fh_replacekey(a, arr[3],-1);
> 33 fh_replacekey(a, arr[9],-81);
> 34
> 35 printf("value(minkey) %d\n",fh_minkey(a));
> 36 printf("id: %d\n\n", (int)fh_extractmin(a));
> 37
> 38 fh_replacekey(a, arr[6],-68);
> 39 fh_replacekey(a, arr[2],-69);
> 40
> 41 printf("value(minkey) %d\n",fh_minkey(a));
> 42 printf("id: %d\n\n", (int)fh_extractmin(a));
> 43
> 44 fh_replacekey(a, arr[1],-52);
> 45 fh_replacekey(a, arr[3],-2);
> 46 fh_replacekey(a, arr[4],-120);
> 47 fh_replacekey(a, arr[5],-48);
> 48
> 49 printf("value(minkey) %d\n",fh_minkey(a));
> 50 printf("id: %d\n\n", (int)fh_extractmin(a));
> 51
> 52 fh_replacekey(a, arr[3],-3);
> 53 fh_replacekey(a, arr[5],-63);
> 54
> 55 printf("value(minkey) %d\n",fh_minkey(a));
> 56 printf("id: %d\n\n", (int)fh_extractmin(a));
> 57
> 58 fh_replacekey(a, arr[5],-110);
> 59 fh_replacekey(a, arr[7],-115);
> 60
> 61 printf("value(minkey) %d\n",fh_minkey(a));
> 62 printf("id: %d\n\n", (int)fh_extractmin(a));
> 63
> 64 fh_replacekey(a, arr[5],-188);
> 65
> 66 printf("value(minkey) %d\n",fh_minkey(a));
> 67 printf("id: %d\n\n", (int)fh_extractmin(a));
> 68
> 69 fh_replacekey(a, arr[3],-4);
> 70
> 71 printf("value(minkey) %d\n",fh_minkey(a));
> 72 printf("id: %d\n\n", (int)fh_extractmin(a));
> 73
> 74 printf("value(minkey) %d\n",fh_minkey(a));
> 75 printf("id: %d\n\n", (int)fh_extractmin(a));
> 76
> 77 fh_deleteheap(a);
> 78
> 79 return 0;
> 80 }
>



Og her er fib.h:
--------- 1   /*-
2    * Copyright 1997, 1998-2003 John-Mark Gurney.
3    * All rights reserved.
4    *
5    * Redistribution and use in source and binary forms, with or
without
6    * modification, are permitted provided that the following
conditions
7    * are met:
8    * 1. Redistributions of source code must retain the above copyright
9    * notice, this list of conditions and the following disclaimer.
10    * 2. Redistributions in binary form must reproduce the above
copyright
11    * notice, this list of conditions and the following
disclaimer in the
12    * documentation and/or other materials provided with the
distribution.
13    *
14    * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS
IS'' AND
15    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE
16    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE
17    * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
BE LIABLE
18    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL
19    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS
20    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION)
21    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT
22    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY
23    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF
24    * SUCH DAMAGE.
25    *
26    *   $Id: fib.h,v 1.10 2003/01/14 10:11:30 jmg Exp $
27    *
28    */
29   
30   #ifndef _FIB_H_
31   #define _FIB_H_
32   
33   struct fibheap;
34   struct fibheap_el;
35   typedef int (*voidcmp)(void *, void *);
36   
37   /* functions for key heaps */
38   struct fibheap *fh_makekeyheap(void);
39   struct fibheap_el *fh_insertkey(struct fibheap *, int, void *);
40   int fh_minkey(struct fibheap *);
41   int fh_replacekey(struct fibheap *, struct fibheap_el *, int);
42   void *fh_replacekeydata(struct fibheap *, struct fibheap_el *,
int, void *);
43   
44   /* functions for void * heaps */
45   struct fibheap *fh_makeheap(void);
46   voidcmp fh_setcmp(struct fibheap *, voidcmp);
47   void *fh_setneginf(struct fibheap *, void *);
48   struct fibheap_el *fh_insert(struct fibheap *, void *);
49   
50   /* shared functions */
51   void *fh_extractmin(struct fibheap *);
52   void *fh_min(struct fibheap *);
53   void *fh_replacedata(struct fibheap *, struct fibheap_el *, void *);
54   void *fh_delete(struct fibheap *, struct fibheap_el *);
55   void fh_deleteheap(struct fibheap *);
56   struct fibheap *fh_union(struct fibheap *, struct fibheap *);
57   
58   #ifdef FH_STATS
59   int fh_maxn(struct fibheap *);
60   int fh_ninserts(struct fibheap *);
61   int fh_nextracts(struct fibheap *);
62   #endif
63   
64   #endif /* _FIB_H_ */
---


Simon Strandgaard (13-05-2003)
Kommentar
Fra : Simon Strandgaard


Dato : 13-05-03 13:03

> cat main.cpp
extern "C" {
#include "fibtest.h"
}

int main() {
// do your stuff here
return 0;
}

gcc fibtest.c -o fibtest.o
g++ main.cpp fibtest.o



prøv dette

--
Simon Strandgaard

Michael Birkmose (13-05-2003)
Kommentar
Fra : Michael Birkmose


Dato : 13-05-03 13:30

Simon Strandgaard wrote:
>>cat main.cpp
>
> extern "C" {
> #include "fibtest.h"
> }
>
> int main() {
> // do your stuff here
> return 0;
> }
>
> gcc fibtest.c -o fibtest.o
> g++ main.cpp fibtest.o
>
>
>
> prøv dette
>
> --
> Simon Strandgaard
hejsa,

det gir ikke rigtigt mening. Det stuff jeg er interesseret i er jo i
fibtest, og kræver nogle c++ ting. derfor er jeg jo nød til at kunne
g++'e fibtest.

Anyhow var det heller ikke så meget det kode som jeg havde prøvet med
der var problemmet... jeg ville mest høre om der var nogle der havde
noget rent c++ kode til fibonacci heaps :)


Rasmus Christian Kaa~ (15-05-2003)
Kommentar
Fra : Rasmus Christian Kaa~


Dato : 15-05-03 10:57

"Michael Birkmose" <birkmose@cs.auc.dk> wrote in message
news:b9qofa$jh0$1@sunsite.dk...
> Simon Strandgaard wrote:
> >>cat main.cpp
> >
> > extern "C" {
> > #include "fibtest.h"
> > }
> >
> > int main() {
> > // do your stuff here
> > return 0;
> > }
> >
> > gcc fibtest.c -o fibtest.o
> > g++ main.cpp fibtest.o
> >
> >
> >
> > prøv dette
> >
> > --
> > Simon Strandgaard
> hejsa,
>
> det gir ikke rigtigt mening. Det stuff jeg er interesseret i er jo i
> fibtest, og kræver nogle c++ ting. derfor er jeg jo nød til at kunne
> g++'e fibtest.
>
> Anyhow var det heller ikke så meget det kode som jeg havde prøvet med
> der var problemmet... jeg ville mest høre om der var nogle der havde
> noget rent c++ kode til fibonacci heaps :)


Simons intention er skam god nok, hvis du har nogen objekt-filer der er
compilet med en C-compiler og linker dem med en eller flere C++ objekter, så
bør du fortælle din compiler/linker at du gør dette (extern "C"). Det du
mangler er så sikkert bare at overloade new/delete operatorene så de benytte
de allokering/deallokeringsfunktioner det pågældende heap-bibliotek stiller
tilrådighed.



Rasmus Christian Kaa~ (15-05-2003)
Kommentar
Fra : Rasmus Christian Kaa~


Dato : 15-05-03 10:59


"Rasmus Christian Kaae" <kaae@daimi.au.dk> wrote in message
news:b9vo9j$mh0$1@news.net.uni-c.dk...
> "Michael Birkmose" <birkmose@cs.auc.dk> wrote in message
> news:b9qofa$jh0$1@sunsite.dk...
> > Simon Strandgaard wrote:
> > >>cat main.cpp
> > >
> > > extern "C" {
> > > #include "fibtest.h"
> > > }
> > >
> > > int main() {
> > > // do your stuff here
> > > return 0;
> > > }
> > >
> > > gcc fibtest.c -o fibtest.o
> > > g++ main.cpp fibtest.o
> > >
> > >
> > >
> > > prøv dette
> > >
> > > --
> > > Simon Strandgaard
> > hejsa,
> >
> > det gir ikke rigtigt mening. Det stuff jeg er interesseret i er jo i
> > fibtest, og kræver nogle c++ ting. derfor er jeg jo nød til at kunne
> > g++'e fibtest.
> >
> > Anyhow var det heller ikke så meget det kode som jeg havde prøvet med
> > der var problemmet... jeg ville mest høre om der var nogle der havde
> > noget rent c++ kode til fibonacci heaps :)
>
>
> Simons intention er skam god nok, hvis du har nogen objekt-filer der er
> compilet med en C-compiler og linker dem med en eller flere C++ objekter,

> bør du fortælle din compiler/linker at du gør dette (extern "C"). Det du
> mangler er så sikkert bare at overloade new/delete operatorene så de
benytte
> de allokering/deallokeringsfunktioner det pågældende heap-bibliotek
stiller
> tilrådighed.

Hov, jeg svarede før jeg læste hvad dit oprindelige link gik ud på, jeg
antog at det var heap-memory og ikke heap-datastruktur. Du kan formentlig
lave en wrapper til den C-implementation ret nemt.




Bo Lorentsen (15-05-2003)
Kommentar
Fra : Bo Lorentsen


Dato : 15-05-03 10:48

Michael Birkmose wrote:
> Hejsa,
>
> Er der nogen der kender et sted hvor man kan finde en god gratis
> implementation af fibonacci heaps i c++?
> Jeg har fundet noget til c, men hvis jeg prøver at compile det med g++
> klager den over at det ikke overholder ansi c++ standarden.
> (http://resnet.uoregon.edu/~gurney_j/jmpc/fib.html)
Jeg har lige fixet fib.c lidt op, så nu er gcc mere glad, så :

CC=g++ make

Virker nu efter hensigten

/BL



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste