baihacker的空间
baihacker 四川 在线状态
1598次访问,排名155好友12人,关注者232
注册时间:2006-1-31
登录时间:2008-7-6
[加为好友] [即时聊天] [发私信]
baihacker的个人资料
所在行业:计算机软件
社区头衔:社区专家
个人专长:
C++
专家分: 目前总共有23866分
C/C++:20988分 扩充话题:2846分 VC/MFC:32分
博客:目前总共有3条评论
访问量:3689
排名:20000名之外
文章数:12条
baihacker的好友
baihacker的留言
xuanyuan0205发表于:2008-07-01
大侠,帮我看看!
http://topic.csdn.net/u/20080701/16/e305ca87-3eed-4889-9028-84ee44262f51.html?seed=1516609005
确实有难度!
ch2002发表于:2008-06-29
非常感谢回答,我再想想。
ch2002发表于:2008-06-27
不好意思,不知道为什么list后的尖括号没打出来。
a或iteA 对应struct A
b或iteB对应struct B
回复于 2008-06-27
你应该去思考你的设计.这种情况下通常可以考虑增加一个类C来作一些处理.你考虑一下你的应用情况,再做出决策.
ch2002发表于:2008-06-27
你好,我想请教一个问题。
有两个结构 struct A 和 struct B;这两个结构要相互关联。
分别生成了两个stl 的链表。std::list a; std::list b;
为了比较快的相互查找;如下声明 A 和 B如下;
struct A
{
  std::list::iterator  iteB;
}

struct B
{
   std::list::iterator  iteA;

}

由于迭代器声明必须用到结构名,产生相互包含的现象,总是编译不通过。并且也不知到其它方式获得链表中元素的地址,不知道怎么解决。
如果不用stl;自己写链表或用数组;如下声明
struct B;

struct A
{
  struct B * pB;
}

struct B
{
   struct A* pA;
}
编译就没问题。
我想问一下,如果用stl容器的化, 两个容器内的元素是否还可以相互快速的查找引用了。
谢谢。










horsemz发表于:2008-06-25
应该是个好人  不吝赐教
zjy11235813发表于:2008-06-24
高手能帮做下不 谢谢了 
j_factory发表于:2008-06-23
飞雪大侠。。。小弟十分仰慕您的算法功底。。想请问下你对算法的学习有什么好方法吗?
回复于 2008-06-23
我的算法并不怎么样,真的.但是我会去学习的.
lzr001发表于:2008-06-22
晕倒,上面的程序怎么贴成这样,不好意思!
回复于 2008-06-22
程序不高效,只是用递归替代循环比较炫.这也展示了一种编程思想:函数式编程.你自己试着改成循环的,去理解程序.
lzr001发表于:2008-06-22
老大,这个程序会比后面的程序高效么? 感觉好像只是用递归替代了for循环#include    <stdio.h>typedef struct BigNum_{    int data[10000];    int n;} BigNum;BigNum*    carry(BigNum* bn, int curr, int valid, int inc){    return curr>=valid && inc ? (++bn->n,        bn->data[curr] = inc%10000, carry(bn, curr+1, valid, inc/10000)) : bn;}BigNum* mul(BigNum* bn, int n, int curr, int valid, int inc){    int t = inc+bn->data[curr]*n;    return curr >= valid ?        carry(bn, curr, valid, inc) :    (bn->data[curr]=t%10000, mul(bn, n, curr+1, valid, t/10000));}BigNum* power(BigNum* bn, int n, int p){    return --p ? (power(bn, n, p), mul(bn, n, 0, bn->n, 0)) :     (bn->n=1, bn->data[0] = n, bn);}BigNum* fac(BigNum* bn, int n){    return n ? (fac(bn, n-1), mul(bn, n, 0, bn->n, 0)): (bn->n=1, bn->data[0] = 1, bn);}void show(BigNum* bn, int curr){    if (curr != bn->n)    {        show(bn, curr+1);        curr == bn->n -1 ? printf("%d", bn->data[curr]) :         printf("%04d", bn->data[curr]);        !curr ? puts("") : 0;    }}BigNum n;int main(int argc, char* argv[])     show(fac(&n, 10000), 0);    return 0; -----------------    for(i=2;i <=n;i++)            {                    for(c=0,j=0;j <m;j++)                    {                            t=a[j]*i+c;                            a[j]=t%10;                            c=t/10;                    }                    while(c)    //用于进位                   {                            a[m++]=c%10;                            c/=10;                    }            } 
self_control发表于:2008-06-21
采用顺延的方法进行存储,当与哈希表中pos处不一致时,就去找下一个,但是如果这个字符串是不在字符集里的,则要将整个哈希表找一遍,岂不是很费力??
回复于 2008-06-21
和可能的数据量,表的容量,hash算法有关.
给baihacker的留言
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|版权声明|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo