注册 登录
编程论坛 C++教室

求助:迭代器 begin 使用了未初始化的局部变量“begin“

雪溯 发布于 2014-01-22 00:57, 630 次点击
代码:
    vector<int >a;
    a.push_back (1);
    vector<int>::iterator al=a.begin();
    vector<int>::iterator am=a.end();
 使用了未初始化的局部变量“begin“
 使用了未初始化的局部变量“end“为什么呢?明明已经不是空的了?
8 回复
#2
fl89622014-01-22 04:22
回复 楼主 雪溯
end() 返回指向vector末尾的迭代器,suo yi ta zhi xiang de shi rong qi li de dao shu di yi ge yuan su . ni zhe ge rong qi li mian you liang ge yuan su, yi ge shi 1, yi ge shi biao zhi zhe rong qi jie shu de biao shi fu.
#3
peach54602014-01-22 08:17
贴完整代码
至少你这四行是对的
#4
雪溯2014-01-22 23:29
回复 2楼 fl8962
sorry,看不懂
#5
雪溯2014-01-22 23:39
回复 3楼 peach5460
#include<iostream>
#include <vector>
int main(){
    vector<int >a;
    a.push_back (1);
    vector<int>::iterator al=a.begin();
    vector<int>::iterator am=a.end();
    return 0;
}
只是为了学习c++,所以就这几行
#6
雪溯2014-01-22 23:44
回复 2楼 fl8962
读了您的拼音明白了一点,但是我还是不明白为什么报错呢?不管怎么样都会返回一个值吧,那么怎么会没有初始化呢
#7
peach54602014-01-23 08:15
换个编译器把,除了没写std
没什么问题
#8
fl89622014-01-23 09:25
回复 5楼 雪溯
#include<iostream>
#include<vector>
using namespace std;
int main(){
    vector<int >a;
    a.push_back (1);
    vector<int>::iterator al=a.begin();
    vector<int>::iterator am=a.end();
    return 0;
}
加上 using namespace std;试试看,我编译没问题。
#9
蚕头燕尾2014-01-24 21:51
#include<iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int>a;
    a.push_back (1);
    vector<int>::iterator al=a.begin();
    vector<int>::iterator am=a.end();
    return 0;
}


亲测这段代码没有问题。
1