C++关于vector的输入和输出问题!!

#include<iostream>#include<vector>usingnamespacestd;intmain(){chari;vector<char>v1;v1... #include<iostream>
#include<vector>
using namespace std;

int main(){
char i;
vector<char> v1;
v1.push_back(i);
cin >> i;
cout << v1[i] << endl;
system("pause");

}
为何我无法输出v1?刚开始学vector所以不懂

其实我也不知道这样输入对不对...
展开
 我来答
hactrox
推荐于2017-10-07 · TA获得超过591个赞
知道小有建树答主
回答量:263
采纳率:66%
帮助的人:211万
展开全部

这个错误还是很明显的,楼主先把i的值存进vector,然后再给i赋值。所以当然什么都没有了,而且输出也不对,值是按顺序存进vector的,所以要顺序输出。

下面是完整代码:

#include<iostream>
#include<vector>
using namespace std;

int main(){
    char i;
    vector<char> v1;
    cin >> i;   // 要先给i赋值才能存进vector里
    v1.push_back(i);
    cout << v1[0] << endl; // 存进去的i在第零个位置
    system("pause");
}
更多追问追答
追问
i多长都可以么?还是只能一个数?
追答
vector是一个容器,你定义成vector就表示用来存类型为char的变量。
你之前已经定义成char i了,所以i是一个字符型的变量。
kaixingui2012
2014-07-28 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6189万
展开全部
#include<iostream>
#include<vector>
using namespace std;

int main(){
char i;
vector<char> v1;

cout <<"input a char:";
cin>> i;//输入一个字符
v1.push_back(i); //存入vector

cout << v1[0] << endl; //按数组方式访问,第一个下标是0
system("pause");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
529669903
2014-07-28 · TA获得超过405个赞
知道小有建树答主
回答量:158
采纳率:87%
帮助的人:112万
展开全部
// 你可以这样使用

char i;
vector<char> v1;   // 此时 v1.size() = 0;
v1.push_back('a'); // 此时 v1.size() = 1;
v1.push_back('b'); // 此时 v1.size() = 2;
v1.push_back('c'); // 此时 v1.size() = 3;

cin >> i;

if ( i < v1.size() ) // i只能小于v1.size(),才能访问到v1中的元素
{
    cout << v1[i] << endl;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
野文菜A
2014-07-28 · TA获得超过830个赞
知道小有建树答主
回答量:645
采纳率:100%
帮助的人:509万
展开全部
char i;
vector<char> v1;
v1.push_back(i); // i没有赋值
cin >> i; //现在才赋值
cout << v1[i] << endl; //vector类似数组,下标不能越界
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-07-28
展开全部
输出应该是pop函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式