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

atoi函数和resverse的使用

a99875984 发布于 2012-08-07 17:54, 533 次点击
atoi(str1.c_str())+atoi(str2.c_str())
这是大数相加的一个小部分,请问下,这atoi函数里面为何要在字符后面加.c_str()?
这是固定格式还是怎么回事啊?
vector <int> ::reverse_iterator reverse_it;这个是定义普通变量还是于vector <int> ::iterator it;元素反向的变量啊?(是自己看书学的vector,不知道一些术语哈),谢了哈

[ 本帖最后由 a99875984 于 2012-8-7 18:08 编辑 ]
3 回复
#2
pangding2012-08-07 21:49
atoi 是把 C 风格的字符串,也就是 char *,转成 int。string 类不能直接用于 atoi。
string 类里的那个 c_str() 是专门用来干这个的,它返回一个 C 式的字符串上。

那个叫反向(或者逆向)迭代器,配合 rbegin() rend() 和它自己的 ++reverse_it。就可以方便的逆序遍历。比用 begin() end() 和 --itr,代码更清晰。
#3
tboying2012-08-07 21:50
vector <int> ::reverse_iterator reverse_it 是反向迭代器
如果定义 vector <int> vec; 则 vec.begin()对应于vec.rend()+1的位置,而vec.end()对应于vec.rbegin()-1的位置。
至于第一个问题,猜测是不是因为atoi函数只接受c风格的字符串的原因。
#4
a998759842012-08-08 05:34
哦,谢了哈
1