Structs - is it possible>?

Hi,

I need to create a struct to hold an array of values.

I would normally do this...

1
2
3
4
5
struct myList {

int myvalues[];

}


and populate it like this....

1
2
3
4
5
6
7
8
9
10
myList tmp;
tmp.someAddCode(1);
tmp.someAddCode(2);
tmp.someAddCode(3);
tmp.someAddCode(4);
tmp.someAddCode(5);
tmp.someAddCode(6);
tmp.someAddCode(7);
tmp.someAddCode(8);
tmp.someAddCode(9);



is it possible to do some code which would allow me to initialise it like this instead?

 
myList tmp = {1, 2, 3, 4, 5, 6, 7, 8, 9} //undefined amount of items 


Thanks :)
In C++11, yes.

In the older C++/C, you can't use that syntax. You could probably hack around it though...the first way would be the easiest to do though.
1
2
3
4
5
struct myList
{
  myList(std::initializer_list<int> vals) : myValues(vals) {}
  std::vector<int> myValues;
};


With an extra pair of braces, you don't even need a constructor:
myList tmp = {{1, 2, 3, 4, 5, 6, 7, 8, 9}};
Last edited on
1
2
3
4
5
6
struct myList {

int myvaluesA[][];
float myvaluesB[][];

} 



can I do this, then?

1
2
3

myList = {{{1, 2, 3}, {7, 8, 9}} , {{1.1, 2.1, 3.1}, {7.1, 8.1, 9.1}}}


would be cool if i could....
If you turn the int/float arrays into std::vectors, yeah, it'll work for C++11.
i dont wanna use std:vectors....
And why is that?
What version of c++ supports this (non array) technique, please?

1
2
3
4
5
6
7
8
9
struct something {
int someint;
int someint2;
int someint3;
int someint4;
float somefloat;
}

something tmp = {1, 2, 3, 4, 2.3}

i am trying to write really compact code that will do on microprocessors... i am still to see if the processors are likely to be running c++11
What version of c++ supports this (non array) technique, please?

All versions. Even C supports it.

i am trying to write really compact code that will do on microprocessors...

You can't use dynamic structures without using dynamic structures, so you can't get much more compact than vector.

i am still to see if the processors are likely to be running c++11

That depends more on the compiler than the hardware.
thanks
Topic archived. No new replies allowed.