Hot answers tagged

14

the smaller the difference between the indices of any two elements, the smaller the difference between the values of the elements. When working with lists of coordinates or similar values with more than one dimension, is there an arrangement of the list that has similar properties to those of a sort in one dimension? What you want is called Distance‐...


8

The difference between sizeof(a)/sizeof(t) and sizeof(a)/sizeof(a[0]) is that for the first one you need to supply two pieces of information (the array name and the type of its elements) while the second one needs only a single piece of information (the array name). The more pieces of information you need to provide, the more chance there is that a mistake ...


7

The guiding principle for choosing a data structure should be its usage, not its members. If, as you say, you only need the items to render sequentially, an array is perfectly fine. If you need to lookup by a key, a map ia the right tool for the job. The fact that the item has an identifier isn't necessarily a factor. That said: If you know you'll have a ...


6

Math You are looking for a formula that allows you to traverse the entire symbol space without every repeating itself. One such formula for modulo integers is x := x + 1. Seed x with any value and repetitive apply the formula. I believe Group theory is what you want to investigate if you take this approach. Book Keeping Keep a list of every id you have ever ...


6

Yes, such masks and stencils will be performed efficiently. But at least when writing C, this is not automatic. In C and C++, every object must have an address. Bools are objects. The smallest addressable value is a char. So bools will generally be one byte large. While this matters for data structures (structs, arrays), it doesn't really matter for local ...


5

An index stands alone, though some data structure (e.g. array) is implied in using the index.  Still the index can be used (e.g. as an id) without an array. An offset has to be an offset from something, so the difference is in the degree with which another entity is implied.  s[105] is offset by 5 from s[100] (e.g. we may have a substring at 100-105).  Here ...


4

It seems to me that in a scenario where 'You have a list of items, and they have some kind of unique key' then a map is always (or usually) advantageous to use. However, from a code readability and 'the data structures make sense' POV, using arrays seems more intuitive. Here, you already have your tradeoff. For a small number of items (e.g. when you draw ...


3

An offset is a displacement you add to a position. If you are talking about the position in a list or an array, and the offset is from the beginning. Then yes, in that context, the offset is the index in refers to. Instead, you could be talking about an offset from a given position on the array (from the end, for example). Then the offset would not match the ...


2

The answer to your question depends on the answer to this question: Do you have retention requirements for the generated Excel file? If you do not have any requirements to keep or maintain the Excel file and each download is unique, you owe it to yourself to keep it ephemeral. In short, it should be generated each time it is requested. As I mentioned, ...


2

I noticed in your current test framework that you are now playing around with copying the array prior to doing the summing. I tried this myself and the change destroys the pop() performance advantage. It's actually slower than the array indexing version. The array indexing solution seems unaffected by this change. I think this gives us a clue to what's ...


1

They often work out to be the same, but conceptually they are different. An index is picking a particular numbered thing out of an array or other structure. An offset is starting at one point, moving by the offset, and seeing where you now are. Consider the C code: int a[10]; int x = a[5]; int y = *(a + 5); Here x is calculated using an index, while y ...


1

No. They never mean the same thing. Even when they're both, say 2, they don't mean the same thing. Oh sure, you can index and offset by simply adding but we use these words for a reason. Offset means start here from now on. Index means here's that thing you wanted. Sure they can both be a 2 that you add but the meaning of that 2 is very different. As proof ...


1

Any metaphor for Python's data model involving boxes is going to be problematic. Instead, I like strings. As in, physical strings or ropes, connecting a name to a value. A list is then simply a sequence of strings, each of which is connected to a value. It doesn't address the O(1) access, but I'm not sure how a visual metaphor can explain that. You can say &...


1

Various kinds of 2D queries are supported efficiently by a quadtree (or in 3D by an octtree). The data is grouped adaptively by 2D locality so it's efficient to find neighbors. As a higher level tool, PostGIS is a PostgreSQL extension that adds Geographical Information Systems (GIS) capabilities to the RDBMS. The PostGIS project, which is BSD licensed, ...


1

You are presenting a weird combination of requirements. I am all with those who say "just don't". But if you must... The best option seems to be to pre-generate all ids in the address space (or an ample subset that will be large enough for your purpose), shuffle it and store it in a file. Then take the ids from the file in a locked context, ...


1

The following does not apply to jagged arrays: Any of the following C expressions can be l-value expressions: A subscript ([ ]) expression that does not evaluate to an array A jagged array is an approach to a two-dimensional data structure that allows for varying the 2nd dimension between positions of the 1st dimension.  ...


1

Also consider the pros/cons from a reviewer point of view. size_t a_size1 = sizeof(a)/sizeof(int); size_t a_size2 = sizeof(a)/sizeof(a[0]); The type definition of a may not be near these lines of code, perhaps in a .h file. To check either line of code, we need to know if a is in fact an array and not a pointer. This is a binary consideration that is ...


Only top voted, non community-wiki answers of a minimum length are eligible