Yes, O analysis is concerned mostly with theory. If you plan to implement
for specific hardware, you do complexity analysis in specific operations and
under very specific limiting conditions.
As you might know, theoretical limit for accessing any array element by
index or by value (key) is O(1). All list-based structures will have higher
access complexity I believe.
I might have misinterpreted your question because you asked about data
tables and mentioned managed C++, which are not theoretical objects in .Net
group. If you are looking only for theoretical discussion you can ignore my
posts,
Theoretically it is possible to access arbitrary array element in constant
time (I believe limit is 2 theoretical operations per access, or O(1) for
single instruction control flow). Practically it is O(f(n)), where f(x) is
realization-dependent function and n is size of array..Function could be
anything - depends on the skills of implementing person, compiler, hardware
and environment conditions.
Did you look at generated assembler codes for some samples? You can see that
in debugger disassembler window. You can estimate JIT-compiled code
complexity then using specific hard facts
"The theory is gray, my friend, and only tree of life is evergreen"
<Faust>