由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 再问两个C++问题
相关主题
一个C++的概念问题return Triangular_iterator( _beg_pos );意思
呼唤大侠们,我实在不能实现C++泛型的精神。c++ template question:
为什么在overloading中,friend <<不能读取private值呢?c++小问题
Why should i include .cpp instead of .hiterator一问
问一个有关iostream的问题partial_sort问题
输入输出流,stl,api精通各需要多长时间?please help debug this code
about namespaceC++中怎么传递std::hex这样的参数啊
C++ template function一个问题子类的assignment operator 怎么访问父类的private member
相关话题的讨论汇总
话题: std话题: string话题: int话题: iterator话题: include
进入Programming版参与讨论
1 (共1页)
g*********s
发帖数: 1782
1
1.这个代码输出为何是0 1 10 2 4,而不是0 1 10 3 4?
#include
#include
#include
int main(){
std::vector v;
for (int i=0; i<5; i++){
v.push_back(i);
}
v.erase(std::find(v.rbegin(), v.rend(), 2).base());
v.insert(std::find(v.rbegin(), v.rend(), 1).base(), 10);
std::copy(v.begin(), v.end(), std::ostream_iterator(std::cout, " ")
);
return 0;
}
2. 这段代码里为何String s1('a')和String s1='a'不等价?
class String{
public:
explicit String(char c, int
g*********s
发帖数: 1782
2
另外第一个代码里为何要有find().base()? find()不是返回了iterator,然后作为参
数传递给erase/insert吗?base()是什么啊?查了半天也没找到。

【在 g*********s 的大作中提到】
: 1.这个代码输出为何是0 1 10 2 4,而不是0 1 10 3 4?
: #include
: #include
: #include
: int main(){
: std::vector v;
: for (int i=0; i<5; i++){
: v.push_back(i);
: }
: v.erase(std::find(v.rbegin(), v.rend(), 2).base());

q*****g
发帖数: 72
3
hint: it uses rbegin(), rend(), which means that it is reverse iterator.

【在 g*********s 的大作中提到】
: 另外第一个代码里为何要有find().base()? find()不是返回了iterator,然后作为参
: 数传递给erase/insert吗?base()是什么啊?查了半天也没找到。

g*********s
发帖数: 1782
4
呵呵,这个我明白了。find的参数是reverse_iterator,所以返回也是,转换成
iterator必须通过base()。

【在 g*********s 的大作中提到】
: 另外第一个代码里为何要有find().base()? find()不是返回了iterator,然后作为参
: 数传递给erase/insert吗?base()是什么啊?查了半天也没找到。

g*********s
发帖数: 1782
5
那个不就是指从前往后找还是从后往前找吗?但是找到的都是指向2的iterator,然后
删除,不是这样吗?

【在 q*****g 的大作中提到】
: hint: it uses rbegin(), rend(), which means that it is reverse iterator.
g*********s
发帖数: 1782
6
OK,明白了。reverse_iterator返回的是下一个。
但是为何有这么古怪的规定啊?这个语义和reverse这个词的含义完全不搭界呀。如果
想提供返回前一个元素的机制怎么办?

【在 g*********s 的大作中提到】
: 那个不就是指从前往后找还是从后往前找吗?但是找到的都是指向2的iterator,然后
: 删除,不是这样吗?

1 (共1页)
进入Programming版参与讨论
相关主题
子类的assignment operator 怎么访问父类的private member问一个有关iostream的问题
请问这是什么错误呀输入输出流,stl,api精通各需要多长时间?
C++ template question with friend ostreamabout namespace
C++ 请教: about the memory layout of the class inheritanceC++ template function一个问题
一个C++的概念问题return Triangular_iterator( _beg_pos );意思
呼唤大侠们,我实在不能实现C++泛型的精神。c++ template question:
为什么在overloading中,friend <<不能读取private值呢?c++小问题
Why should i include .cpp instead of .hiterator一问
相关话题的讨论汇总
话题: std话题: string话题: int话题: iterator话题: include