社区
C++ 语言
帖子详情
浮点数快速赋最大值
damo_xu
2009-06-03 02:11:11
vector里面有很多double值,赋初值 为
d=DBL_MAX;
或d=0.0;
这两个赋值有没有快速的方法,类似memset清零一样?求教。
...全文
413
12
打赏
收藏
浮点数快速赋最大值
vector里面有很多double值,赋初值 为 d=DBL_MAX; 或d=0.0; 这两个赋值有没有快速的方法,类似memset清零一样?求教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
光宇广贞
2009-06-04
打赏
举报
回复
我说的传统就是C的写法,纯算法的东西,还是C和FORTRAN写的好。数据结构也是,因为我觉得,一是健壮、二是安全。STL用不好,安全性挺差的……
建议的话我必须提出至少是一个可行的方案了,具体还在你的设计需要,就目前你的需要来看,就是如此。
damo_xu
2009-06-03
打赏
举报
回复
[Quote=引用 10 楼 hikaliv 的回复:]
你为什么不用传统的写法呢,非要用STL呢?
vector <list <>>……感觉不好整……你不敢用智能指针吧……
[/Quote]
不知你说得传统的写法是指。。。?
vector <list <>> 有什么不妥吗?智能指针我是根本不会。
[Quote=引用 10 楼 hikaliv 的回复:]
既然来了,我建议一个数据结构吧:
若已知某点由某条路径求得到另一点的最短路径,那么该路径上的所有点到其它点的路径都必然是最短路径。
所以你对每个点都记录它点到其的最短路径是冗余的。
[/Quote]
对啊,凭这句话就得加100分!
你的建议很好,但现在就最终优化还有些早,因为后续的算法要用到这个最短路径矩阵,
所以要不要提前全都算出来,还有取什么样的数据结构还在考虑。
老弟说的真是句句珠玑,泡MM间隙,再多聊几句。
光宇广贞
2009-06-03
打赏
举报
回复
[Quote=引用 8 楼 damo_xu 的回复:]
既然来了,就别走了。
[/Quote]
你这种……你这种……
你为什么不用传统的写法呢,非要用STL呢?
vector<list<>>……感觉不好整……你不敢用智能指针吧……
像这种class B,由于是复杂结构,没办法用memset等快速算法的。
既然来了,我建议一个数据结构吧:
若已知某点由某条路径求得到另一点的最短路径,那么该路径上的所有点到其它点的路径都必然是最短路径。
所以你对每个点都记录它点到其的最短路径是冗余的。
所以我的建议是,建一个上三角矩阵,标识着两两点是否“连通”,该“连通”的含义是,一旦计算出了两点之间的最短路径,则将该位置1,查找的时候,只要o(1)的复杂度便可知道某两点间是否有最短路径。
不要提前全都算出来,而是需要的时候再算,一旦算出两点间的最短路径,则该路径上的所有点到路径上其它点的最短路径也就都计算出来了。去上三角阵去置真。当然了,一次计算不可能覆盖所有点,那么等待下次计算,遇到“无连通”的点,计算出最短路径便可。那么几次下来,所有点就都会“连通”了。
那么怎么去记录最短路径呢?
可以上三角阵的每一个位置都对应记录一条最短路径,不过好像有点冗余。
换一种方法,只记录一个二元包,<v,p>,v是目录点,p是下一步将要走到的点。这样的好处是,比如说上三角阵 (1,5) 置真了,就是算好了最短路径,那么我想得到这条路径怎么办?查到比如说 <5,3>,就是说,如果想从第一点走到第五个点,那么下一步要走到第三个点,那么就再去上三角阵的 (3,5)那一位去读<5,x>中的x就行了,直到走到第五个点。
liao05050075
2009-06-03
打赏
举报
回复
STL 有个fill
damo_xu
2009-06-03
打赏
举报
回复
[Quote=引用 7 楼 hikaliv 的回复:]
因为……我觉得吧……因为你的定义,有时候会很复杂……所以……只能……用最简单的办法,去赋值,我也觉得……此法,便是最快的方法了……
[/Quote]
既然来了,就别走了。
我写了个Dijksta算法,想把各个节点的路径和距离储存起来。所以定义个
class B
{
double x; // 赋初值为DBL_MAX
vector <list<int> > path; // 存储到此节点的最短距离的所有路径。
}
一切正常,但怕以后算上很多节点的话有效率问题。
光宇广贞
2009-06-03
打赏
举报
回复
[Quote=引用 6 楼 damo_xu 的回复:]
引用 5 楼 Treazy 的回复:
那就在类内部定义一个vector指针,动态分配并初始化
那么原则上就是让vector初始化了?但最终还是调对象里的构造函数,而构造函数里还是写
x = DBL_MAX;
这一句吧?
[/Quote]
因为……我觉得吧……因为你的定义,有时候会很复杂……所以……只能……用最简单的办法,去赋值,我也觉得……此法,便是最快的方法了……
damo_xu
2009-06-03
打赏
举报
回复
[Quote=引用 5 楼 Treazy 的回复:]
那就在类内部定义一个vector指针,动态分配并初始化
[/Quote]
那么原则上就是让vector初始化了?但最终还是调对象里的构造函数,而构造函数里还是写
x = DBL_MAX;
这一句吧?
Treazy
2009-06-03
打赏
举报
回复
[Quote=引用 3 楼 damo_xu 的回复:]
引用 2 楼 wanyuzhen 的回复:
vector <double> v(n, d); v包含n个值为d的元素。
有时候不是很简单的定义。比如:
class B
{
double x;
vector <list <int> > y;
}
class A
{
private:
vector < vector <class B> > v;
}
[/Quote]
那就在类内部定义一个vector指针,动态分配并初始化
sszwbuaa
2009-06-03
打赏
举报
回复
[Quote=引用 3 楼 damo_xu 的回复:]
引用 2 楼 wanyuzhen 的回复:
vector <double> v(n, d); v包含n个值为d的元素。
有时候不是很简单的定义。比如:
class B
{
double x;
vector <list <int> > y;
}
class A
{
private:
vector < vector <class B> > v;
}
[/Quote]
这种情况只能自己写函数吧?
damo_xu
2009-06-03
打赏
举报
回复
[Quote=引用 2 楼 wanyuzhen 的回复:]
vector <double> v(n, d); v包含n个值为d的元素。
[/Quote]
有时候不是很简单的定义。比如:
class B
{
double x;
vector<list<int> > y;
}
class A
{
private:
vector< vector<class B> > v;
}
wanyuzhen
2009-06-03
打赏
举报
回复
vector<double> v(n, d); v包含n个值为d的元素。
[原创]JavaScript应用技巧集合
本文整理了JavaScript中的应用技巧,包括转换布尔类型、为参数
赋
初值、阻止Iframe加载、字符串替换、数组操作、解析进制数、数组元素删除、函数作为对象、查找数组
最大值
、预加载图片、闭包、块级上下文、处理NaN、真值与假值、修改arguments、Boolean函数与构造函数、
快速
字符串连接、一元操作符、URL编码、table.innerHTML只读、
浮点数
精度问题、新标题生成。
浮点数
编码原理
本文详细介绍了
浮点数
在计算机中的编码结构,包括单精度和双精度
浮点数
的组成,并通过实例展示了
浮点数
的二进制表示方法。同时,探讨了
浮点数
的精度问题,解释了为什么会出现精度丢失,并分析了
浮点数
在存储和运算中的潜在误差。此外,还讨论了
浮点数
的
最大值
、最小值和最小正数值。
php求数组
最大值
,php
快速
查找数组array
最大值
的实例代码
本文探讨了两种在PHP中寻找数组
最大值
的方法:直接使用`max()`和先存储
最大值
再用`array_search()`。通过在包含2000个随机
浮点数
的数组上进行1000次操作,比较了它们的执行效率。结果显示,两种方法的性能存在差异,但并不总是第一种方法更快。文章提供了多次运行的执行时间作为参考,指出在某些情况下,将值分配给变量后再搜索可能会导致略微降低的性能。
快排、归并、
浮点数
二分、高精度加、减法
本文详细介绍了排序算法中的
快速
排序和归并排序,以及
浮点数
二分查找的方法。
快速
排序基于分治策略,通过选取分界点将数组划分为两部分,递归处理后得到有序序列。归并排序同样使用分治,但通过合并两个已排序的子序列得到有序结果。
浮点数
二分查找在处理
浮点数
问题时,确保每次区间长度减半,直至找到答案。此外,还讨论了如何处理
浮点数
精度问题和如何实现稳定的排序算法。
memset
赋
最大最小值、0、-1原理
本文介绍了一种使用memset函数
快速
初始化数组的技巧,通过特定数值初始化字节,使int数组接近最大或最小值,同时提供了补码理解及双精度
浮点数
初始化注意事项。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章