由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 数组,结构,类在数值计算中哪个快
相关主题
发现版上没有聊fortran的[合集] 怎样有效的传递C静态数组的变量名?
C++ 做线性代数,方便使用的库?typedef const char *month Table[3]
有没有办法让一个类的变量只读,不是const?谁给解释一下这个c question
java在数组上的问题:作茧自缚数组指针的问题
新手请教Java数组问题Java EE这东西还有必要学吗
C++一问大家不要爱屋及乌
数值计算谁能推荐个好的编程语言?
question about const reference虚心请教 如何成为Python 大牛
相关话题的讨论汇总
话题: foo话题: 数组话题: int话题: list话题: customer
进入Programming版参与讨论
1 (共1页)
G***G
发帖数: 16778
1
比如一个类
class customer
{
int salary;
int bonus;
int rewards;
}
然后定义个基于这个类的list
var customers = List ;
这种方法比下面这个直接c里面用数组方法更快吗?
int [] salary;
int [] bonus;
int [] rewards;
在内存使用方面,哪个更好?假设数值有30000个。
O***b
发帖数: 104
2
没比较过,但是觉得应该是数组快,结构和类都有overhead,数组是直接在一块糙内存
上开搞
d****i
发帖数: 4809
3
楼上说的对,原生数组最快,占用内存最小。另外,C里面的数组不是你这样定义的,
你把他和Java, C#的搞混了。

【在 G***G 的大作中提到】
: 比如一个类
: class customer
: {
: int salary;
: int bonus;
: int rewards;
: }
: 然后定义个基于这个类的list
: var customers = List ;
: 这种方法比下面这个直接c里面用数组方法更快吗?

G***G
发帖数: 16778
4
C里面的数据不是这样定义的吗?
int[] x = new int [30000];
越来越觉得语言越高,越是鸡肋。
结构化编程最好,面对对象编程就是个狗屎。
就像windows一样。
dos最好,winxp比较好,win7次,win8更次
winxp下可以做很多事情,现在win8都不能做了。
所以微软要停止人们对它的喜爱。
dos一目了然。机器在干什么,也非常清晰。对付病毒和木马也比较容易。
现在的win8,你都不知道后台在运行些什么东西。
自己电脑的东西,是不是早被盗走了,你根本不知道。

【在 d****i 的大作中提到】
: 楼上说的对,原生数组最快,占用内存最小。另外,C里面的数组不是你这样定义的,
: 你把他和Java, C#的搞混了。

b*******s
发帖数: 5216
5
如果你是三个值一起用,比如用三个值求和,是类或者结构好一点,cache miss的可能
性小

【在 G***G 的大作中提到】
: 比如一个类
: class customer
: {
: int salary;
: int bonus;
: int rewards;
: }
: 然后定义个基于这个类的list
: var customers = List ;
: 这种方法比下面这个直接c里面用数组方法更快吗?

b*******s
发帖数: 5216
6
用list没有必要,因为list不保证线性分配,建议用customer array
N******K
发帖数: 10202
7
你还活在原始社会
去看看egein 或者 armodillo

【在 G***G 的大作中提到】
: C里面的数据不是这样定义的吗?
: int[] x = new int [30000];
: 越来越觉得语言越高,越是鸡肋。
: 结构化编程最好,面对对象编程就是个狗屎。
: 就像windows一样。
: dos最好,winxp比较好,win7次,win8更次
: winxp下可以做很多事情,现在win8都不能做了。
: 所以微软要停止人们对它的喜爱。
: dos一目了然。机器在干什么,也非常清晰。对付病毒和木马也比较容易。
: 现在的win8,你都不知道后台在运行些什么东西。

s*******g
发帖数: 243
8
你说的是java吧,因为java不支持自定义value type,所以List里存的都是
指针,customer可能分散在内存各个地方。C++ vector或者C# List存value type的话,
就能保证customer是连续存在一块内存里的。这样内存占用基本和三个数组没什么区别
了。
真正用起来快慢要看你干什么。如果你要求salary平均,当然是数组快,以为只需要读
一个数组。如果你要求每个customer的total income,就是用customer类快了。

【在 G***G 的大作中提到】
: 比如一个类
: class customer
: {
: int salary;
: int bonus;
: int rewards;
: }
: 然后定义个基于这个类的list
: var customers = List ;
: 这种方法比下面这个直接c里面用数组方法更快吗?

B********e
发帖数: 1062
9
用自己觉得最舒服的方式就好了。
Premature optimization is the root of all evil.

【在 G***G 的大作中提到】
: 比如一个类
: class customer
: {
: int salary;
: int bonus;
: int rewards;
: }
: 然后定义个基于这个类的list
: var customers = List ;
: 这种方法比下面这个直接c里面用数组方法更快吗?

g*********e
发帖数: 14401
10

this is java

【在 G***G 的大作中提到】
: C里面的数据不是这样定义的吗?
: int[] x = new int [30000];
: 越来越觉得语言越高,越是鸡肋。
: 结构化编程最好,面对对象编程就是个狗屎。
: 就像windows一样。
: dos最好,winxp比较好,win7次,win8更次
: winxp下可以做很多事情,现在win8都不能做了。
: 所以微软要停止人们对它的喜爱。
: dos一目了然。机器在干什么,也非常清晰。对付病毒和木马也比较容易。
: 现在的win8,你都不知道后台在运行些什么东西。

相关主题
C++一问[合集] 怎样有效的传递C静态数组的变量名?
数值计算typedef const char *month Table[3]
question about const reference谁给解释一下这个c question
进入Programming版参与讨论
g*******t
发帖数: 7704
11
数组简单,内存消耗小,class肯定代码多,
不过都不是问题, 维护性,可读性最重要,
b*******s
发帖数: 5216
12
"数组简单,内存消耗小,class肯定代码多"
sure ?
how about this class
class foo
{
foo() = delete;
foo(const foo&) = delete;
foo& operator=(const foo&) = delete;
foo(const foo&&) = delete;
foo& operator=(const foo&&) = delete;
};

【在 g*******t 的大作中提到】
: 数组简单,内存消耗小,class肯定代码多,
: 不过都不是问题, 维护性,可读性最重要,

N******K
发帖数: 10202
13
火鸡节打脸 不厚道

【在 b*******s 的大作中提到】
: "数组简单,内存消耗小,class肯定代码多"
: sure ?
: how about this class
: class foo
: {
: foo() = delete;
: foo(const foo&) = delete;
: foo& operator=(const foo&) = delete;
: foo(const foo&&) = delete;
: foo& operator=(const foo&&) = delete;

z******g
发帖数: 271
14
兄弟,你现在这个阶段应该少思考,多看书

【在 G***G 的大作中提到】
: C里面的数据不是这样定义的吗?
: int[] x = new int [30000];
: 越来越觉得语言越高,越是鸡肋。
: 结构化编程最好,面对对象编程就是个狗屎。
: 就像windows一样。
: dos最好,winxp比较好,win7次,win8更次
: winxp下可以做很多事情,现在win8都不能做了。
: 所以微软要停止人们对它的喜爱。
: dos一目了然。机器在干什么,也非常清晰。对付病毒和木马也比较容易。
: 现在的win8,你都不知道后台在运行些什么东西。

h**********c
发帖数: 4120
15
new is c++
c malloc
h**********c
发帖数: 4120
16
好象有的cpu /gpu 架构可以压缩array到处理单元
把lapack. linpack, tnt 挂上去
h**********c
发帖数: 4120
17
有个波兰人搞了数据库index压缩,点子是不错的
不知道卖了没有 我觉得比什么booty data 靠谱
1 (共1页)
进入Programming版参与讨论
相关主题
虚心请教 如何成为Python 大牛新手请教Java数组问题
c写CGIC++一问
请问:稀疏矩阵运算有什么好的C++库?数值计算
Matrix calculation in C++question about const reference
发现版上没有聊fortran的[合集] 怎样有效的传递C静态数组的变量名?
C++ 做线性代数,方便使用的库?typedef const char *month Table[3]
有没有办法让一个类的变量只读,不是const?谁给解释一下这个c question
java在数组上的问题:作茧自缚数组指针的问题
相关话题的讨论汇总
话题: foo话题: 数组话题: int话题: list话题: customer