| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1571 人关注过本帖, 1 人收藏
标题:求指教,求鞭笞,关于vector的元素添加。
取消只看楼主 加入收藏
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:7 
求指教,求鞭笞,关于vector的元素添加。
string word;
vector<string> text;
while(cin>>word){
   text.push_back(word);
}
这是《C++ primer》上的一段示范代码,可是我就有疑问了,这样没有标定text的所占内存的大小,就循环添加元素,text在内存中是如何处理的啊,顺序?链式?这样做难道不会造成内存管理的混乱吗?
求指教啊
搜索更多相关主题的帖子: 元素 word 如何 
2013-01-15 10:55
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
以下是引用rjsp在2013-1-15 11:08:34的发言:

顺序,自动扩张内存

举个例子,假设
int* p = new int[10];
size_t len = 0;
我可以添加10个元素,每添加一个则将len加一
当我添加第11个时,我先这么做:
  int* p_ = new int[20];
  memcpy( p_, p, 10*sizeof(int) );
然后就可以再添加10个。
汗啊,那不是,添加几个元素就复制一次?这可是能动态增加元素了,可这招也.....

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-15 11:33
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
以下是引用peach5460在2013-1-15 11:20:24的发言:

std::string在stl里面是char*的实现
所以在push_back的时候,实际上是push_back了一个int
所以不需要定义长度...
 
在erse的时候,会隐式的调用string的析构释放内存...
???小猪兄弟,没看懂啊,我的C++才刚开始学,有的二专业术语看不懂啊

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-15 11:37
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
以下是引用peach5460在2013-1-15 11:23:26的发言:

 
再顺便跟你普及一下push_back
push_back实现的是浅拷贝
所以,只是把指针赋过去了...
小猪兄弟,这回的听懂了

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-15 11:39
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
回复 11楼 peach5460
嘿嘿,你的头像可不就是小猪?

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-15 11:50
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
哎,越看越糊涂了,其实可能是我太急了,模板好完全没接触到,才接触到容器和类就深扣这个问题可能是太早了,兄弟们的解释,在网上找的东西竟看不懂,还是先放放吧,谢谢兄弟们了,我还是继续往下学,这个问题先记着吧。
头疼啊。。。。。。。。。。。。。。。。。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-15 11:55
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
T版,你和我们QQ群的群主是同一类,都是BUG,我就发现怎么没有你们不知道的东西啊。

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-15 16:20
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
BUG  不要理解为虫,要理解为超越法则而存在的事物

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2013-01-15 17:09
快速回复:求指教,求鞭笞,关于vector的元素添加。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028472 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved