容器可否重复使用?

匚匚 2011-07-24 03:27:25
vector<double> val; //定义一个容器变量作为公共空间
double data;

while(1)
{
while(cin>>data) //输入一组数据
{
val.push_back(data);
...
// do something //数据处理
}
}
...全文
107 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
匚匚 2011-07-25
  • 打赏
  • 举报
回复
但元素没有清零呢,看来只有自己写一个窗口了

[Quote=引用 5 楼 free_program_1314 的回复:]
C/C++ code


#include "stdafx.h"
#include<iostream>
#include<vector>

using namespace std;

int main(array<System::String ^> ^args)
{
vector<double> val;
double tmp;
vector<do……
[/Quote]
匚匚 2011-07-25
  • 打赏
  • 举报
回复
还是自己写一个,相当于缓冲区
Michael_Xie 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lifesider 的回复:]

引用 3 楼 zhw952 的回复:
希望每次输入数据时,都能从容器头开始,好像没提供这方面的接口

使用insert方法而不是push_back就行了呀,比如
val.insert(val.begin(), data);
[/Quote]

用insert很不划算呀,如果是这种情况的话,那就是用deque吧。
luciferisnotsatan 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhw952 的回复:]

但元素没有清零呢,看来只有自己写一个窗口了

引用 5 楼 free_program_1314 的回复:
C/C++ code


#include "stdafx.h"
#include<iostream>
#include<vector>

using namespace std;

int main(array<System::String ^> ^args)
{……
[/Quote]
val.clear()不就清空了
lifesider 2011-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhw952 的回复:]
希望每次输入数据时,都能从容器头开始,好像没提供这方面的接口
[/Quote]
使用insert方法而不是push_back就行了呀,比如
val.insert(val.begin(), data);

错_对 2011-07-24
  • 打赏
  • 举报
回复


#include "stdafx.h"
#include<iostream>
#include<vector>

using namespace std;

int main(array<System::String ^> ^args)
{
vector<double> val;
double tmp;
vector<double>::iterator start_pos;
start_pos=val.begin();

cin>>tmp;
if ( cin.bad( )==true )
{
cerr<<"bad input "<<endl;
exit( 1 );
}
else if (cin.fail()==true )
{
cerr<<" value type invaild "<<endl;
cin.clear( cin.rdstate() );
}
else
val.push_back(tmp);

copy( val.begin(), val.end(), ostream_iterator<double>(cout, " ") );

system("pause");

return 0;
}



出于好玩,写了这个,可以编译运行。
至善者善之敌 2011-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zhw952 的回复:]
希望每次输入数据时,都能从容器头开始,好像没提供这方面的接口
[/Quote]

你需要擦除,从新在来
myvector.clear();

或者使用assign()替代
匚匚 2011-07-24
  • 打赏
  • 举报
回复
希望每次输入数据时,都能从容器头开始,好像没提供这方面的接口
至善者善之敌 2011-07-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhw952 的回复:]
vector<double> val; //定义一个容器变量作为公共空间
double data;

while(1)
{
while(cin>>data) //输入一组数据
{
val.push_back(data);
...
// do something //数据处理
……
[/Quote]‘
你的代码就是普通的压数字到容器了。。。
lifesider 2011-07-24
  • 打赏
  • 举报
回复
你想说明什么问题?
// do something //数据处理---这时在你可以使用val中的所有元素,即是你之前输入的数据在本次输入中也可以使用

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧