c++ 中 back() 的目的是什么?
What is the purpose of back() in c++?
代码如下:
class Solution {
public:
int romanToInt(string s) {
unordered_map<char, int> list = {
{'I', 1},
{'V', 5},
{'X', 10},
{'L', 50},
{'C', 100},
{'D', 500},
{'M', 1000}
};
int total = list[s.back()];
for(int i = s.length() - 2; i>=0; --i){
if(list[s[i]] < list[s[i+1]]){
total -= list[s[i]];
}
else{
total += list[s[i]];
}
}
return total;
}
};
我不明白这一行的目的是什么:
int total = list[s.back()];
谁能告诉我
的目的是什么
"back()"
在上面的代码中?
据我所知,字符串 s 包含一个使用罗马数字的数字,例如 "IV"
代表 4。因此表达式 s.back() 产生字符串中的最后一个符号 'V'
.
即字符串从右向左遍历
换句话说,对于极少数例外的顺序容器,成员函数 front
生成容器的第一个元素,函数 back
生成容器的最后一个元素。
代码如下:
class Solution {
public:
int romanToInt(string s) {
unordered_map<char, int> list = {
{'I', 1},
{'V', 5},
{'X', 10},
{'L', 50},
{'C', 100},
{'D', 500},
{'M', 1000}
};
int total = list[s.back()];
for(int i = s.length() - 2; i>=0; --i){
if(list[s[i]] < list[s[i+1]]){
total -= list[s[i]];
}
else{
total += list[s[i]];
}
}
return total;
}
};
我不明白这一行的目的是什么:
int total = list[s.back()];
谁能告诉我
的目的是什么"back()"
在上面的代码中?
据我所知,字符串 s 包含一个使用罗马数字的数字,例如 "IV"
代表 4。因此表达式 s.back() 产生字符串中的最后一个符号 'V'
.
即字符串从右向左遍历
换句话说,对于极少数例外的顺序容器,成员函数 front
生成容器的第一个元素,函数 back
生成容器的最后一个元素。