Sponsored Content
Top Forums Programming C- trying to code a 'spare array'; 'enum' fauled. Post 302697883 by alex_5161 on Friday 7th of September 2012 02:12:11 PM
Old 09-07-2012
C- trying to code a 'spare array'; 'enum' fauled.

I am trying to implement a spare array in C that would be referenced by regular integers.
Right away: define array for maximum possible index elements completely is not what I trying to get!!!

It should be a construction that would have just 2 elements if I need to have just two indexes, like 2000 and 5, let say.

(Genarally, as a hash in perl, for example)
If I need to have that indexed by strings or characters, the 'enum' allows to nicely prepare that.

But with integers it is not compiled.
I mean no way to define
Code:
  enum E_TYPE {1,4,2};

By usage my intention is to have a way to work with an array of numbers referencing to elements by another set of numbers, that could be not consecuensed, not from 0 and without using the search by any way (loop, or any other smartness)

So, I would have related info-array, say, like this:
Code:
struct {int key; int val;} Inf_Arr[] = {
   {25, 44},
   {35, 55},
   (1,  99} };

And I would like to get Int_Arr[n].val by some Ref_Arr[ Int_Arr[n].key ]

So, having int a = Ref_Arr[25]; - I would have a==44

One again, I would like to construct data in a way to be able access the 'val' by the 'key' and (!!) - without using a 'switch-case', if, or any loop for each single 'key' through whole Inf_Arr[]

Does anybody know how it could be done?
Any idea?
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Vfstab on spare disk - HOW ? Mount ?

Hi, guys ! Could someone clarify one thing for me: I start machine from disk0, and want to check the /etc/vfstab on disk1. How do i do it ? Tried to write: cd / mount /dev/dsk/c0t1d0s0 /mnt But if I do cd /mnt, it is empty. I expected to see disk1 there ? Or am I wrong ? How do I... (3 Replies)
Discussion started by: DGoubine
3 Replies

2. Programming

what is the base type of enum

helo i have asked in exam what that what is the base type of enum options are given bewlo (1) long int (2) short int (3) signed int (4) unsigned int can u tell me what is the exact answer from the above option Regards, Amit (1 Reply)
Discussion started by: amitpansuria
1 Replies

3. IP Networking

DNS ENUM RR interpretation

Hi Guys, This is really really urgent. Am looking out for some quick answers. I'm developing a DNS Resolver client that interprets DNS Query repsonses & pass on the needful to DNS applications. When an ENUM query(modified to an nslookup naptr query) is issued & an NAPTR RR(Resource Record)... (1 Reply)
Discussion started by: smanu
1 Replies

4. Programming

enum in c++

#include <iostream> #include <stdio.h> using namespace std; typedef struct A { enum a{ red,blue,green}a; }obj11; obj11 obj1; int main() { //obj1.a=red; // how to set variable ? cout<<"sizeof struct is n"<<sizeof(obj1); cout<<"obj1.a is"<<obj1.a; if... (1 Reply)
Discussion started by: crackthehit007
1 Replies

5. Solaris

Hot Spare pool

One more query in SVM :) Now with hot spare spool... I can understand adding/replacing a slice in particular hot spare pool with "-a / -r" option (or) adding a slice to all existing hot spare pool with "-all" option. Here my query is for deleting, we have only option "-d". 1) If the hot... (2 Replies)
Discussion started by: gowthamakanthan
2 Replies

6. Solaris

Hot Spare replacement

Hi Guys, Can Someone pls let me know the thorough process for Hot spare replacement as current Hot spare slice has broken down . :mad: Thanks ---------- Post updated at 06:34 PM ---------- Previous update was at 05:21 PM ---------- Update : Its a solaris 10 box (1 Reply)
Discussion started by: Solarister
1 Replies

7. Programming

enum and C preprocessor

Say I have a list of enumerations I wish to use to select a variable at compile-time: enum pins { PIN_A=1, PIN_B=7, PIN_C=6, } int VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7; #define PIN_TO_VAR(NUM) VAR ## NUM int main(void) { PIN_TO_VAR(PIN_A)=32;... (2 Replies)
Discussion started by: Corona688
2 Replies

8. Solaris

How to get spare disks working

Dears how can i make this spare disks working online to replace a defective disks vxdisk list DEVICE TYPE DISK GROUP STATUS c0t10d0s2 sliced - - error c0t11d0s2 sliced disk08 rootdg online c1t16d0s2 sliced ... (3 Replies)
Discussion started by: thecobra151
3 Replies

9. Programming

Mixed enum types - coverity defect

Hi All, I came across this error "MIXING ENUM TYPES" when I run my C program against the Coverity Tool. I've made many search relating to the error, but I didnt find the exact solution. Can anyone help me to overcome this.? Thanks in Advance.!! (3 Replies)
Discussion started by: Parameswaran
3 Replies

10. Solaris

How to determine if i have spare disks in Solaris?

Hi Guys, obviously new to SOLARIS SUN SPARC 5.10 I would really appreciate if you help me see how to find free disks available in my system. Like i am a linux admin. If i want to grow a file system in linux. I would first have a look at my volume groups to see if they have free PEs if not then... (2 Replies)
Discussion started by: aiqbal
2 Replies
ArrayLabels(3o) 						   OCaml library						   ArrayLabels(3o)

NAME
ArrayLabels - Array operations. Module Module ArrayLabels Documentation Module ArrayLabels : sig end Array operations. val length : 'a array -> int Return the length (number of elements) of the given array. val get : 'a array -> int -> 'a Array.get a n returns the element number n of array a . The first element has number 0. The last element has number Array.length a - 1 . You can also write a.(n) instead of Array.get a n . Raise Invalid_argument index out of bounds if n is outside the range 0 to (Array.length a - 1) . val set : 'a array -> int -> 'a -> unit Array.set a n x modifies array a in place, replacing element number n with x . You can also write a.(n) <- x instead of Array.set a n x . Raise Invalid_argument index out of bounds if n is outside the range 0 to Array.length a - 1 . val make : int -> 'a -> 'a array Array.make n x returns a fresh array of length n , initialized with x . All the elements of this new array are initially physically equal to x (in the sense of the == predicate). Consequently, if x is mutable, it is shared among all elements of the array, and modifying x through one of the array entries will modify all other entries at the same time. Raise Invalid_argument if n < 0 or n > Sys.max_array_length . If the value of x is a floating-point number, then the maximum size is only Sys.max_array_length / 2 . val create : int -> 'a -> 'a array Deprecated. Array.create is an alias for ArrayLabels.make . val init : int -> f:(int -> 'a) -> 'a array Array.init n f returns a fresh array of length n , with element number i initialized to the result of f i . In other terms, Array.init n f tabulates the results of f applied to the integers 0 to n-1 . Raise Invalid_argument if n < 0 or n > Sys.max_array_length . If the return type of f is float , then the maximum size is only Sys.max_array_length / 2 . val make_matrix : dimx:int -> dimy:int -> 'a -> 'a array array Array.make_matrix dimx dimy e returns a two-dimensional array (an array of arrays) with first dimension dimx and second dimension dimy . All the elements of this new matrix are initially physically equal to e . The element ( x,y ) of a matrix m is accessed with the notation m.(x).(y) . Raise Invalid_argument if dimx or dimy is negative or greater than Sys.max_array_length . If the value of e is a floating-point number, then the maximum size is only Sys.max_array_length / 2 . val create_matrix : dimx:int -> dimy:int -> 'a -> 'a array array Deprecated. Array.create_matrix is an alias for ArrayLabels.make_matrix . val append : 'a array -> 'a array -> 'a array Array.append v1 v2 returns a fresh array containing the concatenation of the arrays v1 and v2 . val concat : 'a array list -> 'a array Same as Array.append , but concatenates a list of arrays. val sub : 'a array -> pos:int -> len:int -> 'a array Array.sub a start len returns a fresh array of length len , containing the elements number start to start + len - 1 of array a . Raise Invalid_argument Array.sub if start and len do not designate a valid subarray of a ; that is, if start < 0 , or len < 0 , or start + len > Array.length a . val copy : 'a array -> 'a array Array.copy a returns a copy of a , that is, a fresh array containing the same elements as a . val fill : 'a array -> pos:int -> len:int -> 'a -> unit Array.fill a ofs len x modifies the array a in place, storing x in elements number ofs to ofs + len - 1 . Raise Invalid_argument Array.fill if ofs and len do not designate a valid subarray of a . val blit : src:'a array -> src_pos:int -> dst:'a array -> dst_pos:int -> len:int -> unit Array.blit v1 o1 v2 o2 len copies len elements from array v1 , starting at element number o1 , to array v2 , starting at element number o2 . It works correctly even if v1 and v2 are the same array, and the source and destination chunks overlap. Raise Invalid_argument Array.blit if o1 and len do not designate a valid subarray of v1 , or if o2 and len do not designate a valid subar- ray of v2 . val to_list : 'a array -> 'a list Array.to_list a returns the list of all the elements of a . val of_list : 'a list -> 'a array Array.of_list l returns a fresh array containing the elements of l . val iter : f:('a -> unit) -> 'a array -> unit Array.iter f a applies function f in turn to all the elements of a . It is equivalent to f a.(0); f a.(1); ...; f a.(Array.length a - 1); () . val map : f:('a -> 'b) -> 'a array -> 'b array Array.map f a applies function f to all the elements of a , and builds an array with the results returned by f : [| f a.(0); f a.(1); ...; f a.(Array.length a - 1) |] . val iteri : f:(int -> 'a -> unit) -> 'a array -> unit Same as ArrayLabels.iter , but the function is applied to the index of the element as first argument, and the element itself as second argument. val mapi : f:(int -> 'a -> 'b) -> 'a array -> 'b array Same as ArrayLabels.map , but the function is applied to the index of the element as first argument, and the element itself as second argu- ment. val fold_left : f:('a -> 'b -> 'a) -> init:'a -> 'b array -> 'a Array.fold_left f x a computes f (... (f (f x a.(0)) a.(1)) ...) a.(n-1) , where n is the length of the array a . val fold_right : f:('a -> 'b -> 'b) -> 'a array -> init:'b -> 'b Array.fold_right f a x computes f a.(0) (f a.(1) ( ... (f a.(n-1) x) ...)) , where n is the length of the array a . === Sorting === val sort : cmp:('a -> 'a -> int) -> 'a array -> unit Sort an array in increasing order according to a comparison function. The comparison function must return 0 if its arguments compare as equal, a positive integer if the first is greater, and a negative integer if the first is smaller (see below for a complete specification). For example, Pervasives.compare is a suitable comparison function, provided there are no floating-point NaN values in the data. After calling Array.sort , the array is sorted in place in increasing order. Array.sort is guaranteed to run in constant heap space and (at most) logarithmic stack space. The current implementation uses Heap Sort. It runs in constant stack space. Specification of the comparison function: Let a be the array and cmp the comparison function. The following must be true for all x, y, z in a : - cmp x y > 0 if and only if cmp y x < 0 - if cmp x y >= 0 and cmp y z >= 0 then cmp x z >= 0 When Array.sort returns, a contains the same elements as before, reordered in such a way that for all i and j valid indices of a : - cmp a.(i) a.(j) >= 0 if and only if i >= j val stable_sort : cmp:('a -> 'a -> int) -> 'a array -> unit Same as ArrayLabels.sort , but the sorting algorithm is stable (i.e. elements that compare equal are kept in their original order) and not guaranteed to run in constant heap space. The current implementation uses Merge Sort. It uses n/2 words of heap space, where n is the length of the array. It is usually faster than the current implementation of ArrayLabels.sort . val fast_sort : cmp:('a -> 'a -> int) -> 'a array -> unit Same as Array.sort or Array.stable_sort , whichever is faster on typical input. OCamldoc 2012-06-26 ArrayLabels(3o)
All times are GMT -4. The time now is 08:27 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy