一句话搞定string类型大小写转换之transform用法
2012-02-21 09:58
393 查看
对于cpp中的string类型大小写转换用的可以说非常频繁,下面是使用STL实现的一种非常简单的方式进行转换
std::transform (strExt.begin(), strExt.end(), strExt.begin(), ::toupper ); //将strExt转换成大写。
其实transform的用法非常广泛,下面对其进行简要介绍。
查看transform的标准定义
对参数的含义:
first1, last1Input iterators to the initial and final positions of the first sequence. The range used is [first1,last1), which contains all the elements between first1 and last1, including the element pointed by first1 but not the
element pointed by last1.first2Input iterator to the initial position of the second range. The range includes as many elements as [first1,last1).resultOutput iterator to the initial position of the range where function results are stored. The range includes as many elements as [first1,last1).op 一元操作函数Unary function taking one element as argument, and returning some result value. This can either be a pointer to a function or an object whose class overloads operator().binary_op 二元操作函数Binary function taking two elements as argument (one of each of the two sequences), and returning some result value. This can either be a pointer to a function or an object whose class overloads operator().
举一个例子,对vector进行操作
std::transform (strExt.begin(), strExt.end(), strExt.begin(), ::toupper ); //将strExt转换成大写。
其实transform的用法非常广泛,下面对其进行简要介绍。
查看transform的标准定义
template < class InputIterator, class OutputIterator, class UnaryOperator > OutputIterator transform ( InputIterator first1, InputIterator last1, OutputIterator result, UnaryOperator op ); template < class InputIterator1, class InputIterator2, class OutputIterator, class BinaryOperator > OutputIterator transform ( InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryOperator binary_op );其实现类似于下面:
template < class InputIterator, class OutputIterator, class UnaryOperator > OutputIterator transform ( InputIterator first1, InputIterator last1, OutputIterator result, UnaryOperator op ) { while (first1 != last1) *result++ = op(*first1++); // or: *result++=binary_op(*first1++,*first2++); return result; }
对参数的含义:
first1, last1Input iterators to the initial and final positions of the first sequence. The range used is [first1,last1), which contains all the elements between first1 and last1, including the element pointed by first1 but not the
element pointed by last1.first2Input iterator to the initial position of the second range. The range includes as many elements as [first1,last1).resultOutput iterator to the initial position of the range where function results are stored. The range includes as many elements as [first1,last1).op 一元操作函数Unary function taking one element as argument, and returning some result value. This can either be a pointer to a function or an object whose class overloads operator().binary_op 二元操作函数Binary function taking two elements as argument (one of each of the two sequences), and returning some result value. This can either be a pointer to a function or an object whose class overloads operator().
举一个例子,对vector进行操作
// transform algorithm example #include <iostream> #include <algorithm> #include <vector> using namespace std; int op_increase (int i) { return ++i; } int op_sum (int i, int j) { return i+j; } int main () { vector<int> first; vector<int> second; vector<int>::iterator it; // set some values: for (int i=1; i<6; i++) first.push_back (i*10); // first: 10 20 30 40 50 second.resize(first.size()); // allocate space transform (first.begin(), first.end(), second.begin(), op_increase); // second: 11 21 31 41 51 transform (first.begin(), first.end(), second.begin(), first.begin(), op_sum); // first: 21 41 61 81 101 cout << "first contains:"; for (it=first.begin(); it!=first.end(); ++it) cout << " " << *it; cout << endl; return 0; }结果输出
first contains: 21 41 61 81 101
相关文章推荐
- 一句话搞定string类型大小写转换之transform用法
- C++ STL string 大小写转换时的 no matching function for call to ‘transform 错误
- C++ STL string 大小写转换时的 no matching function for call to ‘transform 错误
- c++ operator操作符的两种用法:重载和隐式类型转换,string转其他基本数据类型的简洁实现string_cast
- stringstream的重要用法(数据类型转换)
- string类型大小写转换及a-z A-z的ascii码
- C++ string大小写转换以及transform,tolower,toupper,用法
- string 的大小写转换
- Android int 和 String 类型转换方法
- 数据类型转换:static_cast,const_cast等用法(转载)
- int与string类型转换
- loadtxt()读取数据类型转换/string转换float/ValueError: could not convert string to float:
- ZZ:java中数据类型转换 (int string char等)
- C++中的string类型转换为int类型
- dom4j把String类型的XML数据转换成Document
- String的valueOf()用于将其它类型转换为字符串
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- String和基础数据类型之间的转换
- [置顶] java中类型转换(String float int)
- 【python系列】Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)