Hi Kayler,

you should not use IntArgs for representing your data, only for posting constraints. So, when you read in your data, just use e.g. normal integer vectors. Then you post the constraints, and you know exactly how many you need. For each posted constraint, you construct the corresponding IntArgs from the data vectors. That's their purpose, don't use them for storing data.

Guido

Kayler Yao wrote:

hi,
Now let me talk about what i want to do. I have a lot of data,and i need to copy some data into the variable of the " IntArgs ". The number of variables what i want is uncertain,which is controlled by an outside parameter. And these variables include different data. For instance, i have an 10*10 Array data. Now i want to copy the second ,the fifth and the sixth column of Array data into three variables of "IntArgs". In my project, the number of variables of "IntArgs" what i need and which columns of Array data i want to copy are all uncertain,controlled by parameters. So this case make me to search for an dynamical method to create variable of the "IntArgs" . But "IntArgs" do not have a new operator by design. So i have to change the way and create an certain number of variables of the "IntArgs",which is larger than actual need. You know that wasting memory is an obvious disadvantage of this way.
     whether there has an better way to resolve this problem?

Kayler



2009/8/30 Christian Schulte <cschu...@kth.se>
Hi,


what’s wrong with creating a new array each time you need it? They are very fast to create (they will only allocate heap memory if the array is large and otherwise, creation is super-quick). I have to admit I still don’t see really what you mean by uncertain number.


Best

Christian


From: Kayler Yao [mailto:ris...@gmail.com]
Sent: Saturday, August 29, 2009 5:23 PM
To: Christian Schulte
Cc: us...@gecode.org


Subject: Re: [gecode-users] help --- how to create an object dynamically in Gecode
?



hi,

Your said about using Argument arrays are right . The purpose i use Argument arrays to do is also just as it should to be . What i want to do is that I want to use uncertain number of Argument Arrays ,so i want to create Argument arrays dynamically. You said that they do not have a new operator by design ,so i can't use "new" way. I maybe create an certain number of Argument Arrays which is much more than i want ,and it may waste some memories. Whether there has another way to realize my thought?

welcome to talk about it.


Kayler.

2009/8/29 Christian Schulte <cschu...@kth.se>

Hi,


Argument arrays are meant for what they are called: passing arguments as is explained in detail in Section 4.2.2 in Modeling with Gecode. Using them for other purposes is a bad idea and hence they do not have a new operator by design!


What you should do is use a different data structure and create and argument array just when you need it for posting a propagator or branching.


Christian


From: users-boun...@gecode.org [mailto:users-boun...@gecode.org] On Behalf Of Kayler Yao
Sent: Saturday, August 29, 2009 5:20 AM
To: us...@gecode.org
Subject: Re: [gecode-users] help --- how to create an object dynamically in Gecode?


hi,

And i find that "Gecode::Support::DynamicArray< T, A > Class Template" maybe can realize it. But i did it unsuccessfully.

Who can give me right answer.


Kayler

2009/8/29 Kayler Yao <ris...@gmail.com>

hi,

I want to create an object of IntArgs in my program dynamically. For instance " IntArgs *pt = new IntArgs(4); -----create an object of IntArgs with four elements" or

"IntArgs *pt = new IntArgs [10];------create an array with 10 object of IntArgs." They all be compiled with errors. And i haven't seen the examples of create object dynamically in Gecode. And I want to know whether the Gecode support to create object of Gecode class ? And how ?

Look forward to your reply!


Kayler




_______________________________________________
Gecode users mailing list
us...@gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users

_______________________________________________
Gecode users mailing list
us...@gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users

Reply via email to