DriveHQ Start Menu
Cloud Drive Mapping
Folder Sync
Cloud Backup
True Drop Box
FTP/SFTP Hosting
Group Account
DriveHQ Start Menu
Online File Server
My Storage
|
Manage Shares
|
Publishes
|
Drop Boxes
|
Group Account
WebDAV Drive Mapping
Cloud Drive Home
|
WebDAV Guide
|
Drive Mapping Tool
|
Drive Mapping URL
Complete Data Backup
Backup Guide
|
Online Backup Tool
|
Cloud-to-Cloud Backup
FTP, Email & Web Service
FTP Home
|
FTP Hosting FAQ
|
Email Hosting
|
EmailManager
|
Web Hosting
Help & Resources
About
|
Enterprise Service
|
Partnership
|
Comparisons
|
Support
Quick Links
Security and Privacy
Download Software
Service Manual
Use Cases
Group Account
Online Help
Blog
Contact
Cloud Surveillance
Sign Up
Login
Features
Business Features
Online File Server
FTP Hosting
Cloud Drive Mapping
Cloud File Backup
Email Backup & Hosting
Cloud File Sharing
Folder Synchronization
Group Management
True Drop Box
Full-text Search
AD Integration/SSO
Mobile Access
IP Camera & DVR Solution
More...
Personal Features
Personal Cloud Drive
Backup All Devices
Mobile APPs
Personal Web Hosting
Sub-Account (for Kids)
Home/PC/Kids Monitoring
More...
Software
DriveHQ Drive Mapping Tool
DriveHQ FileManager
DriveHQ Online Backup
DriveHQ Mobile Apps
Pricing
Business Plans & Pricing
Personal Plans & Pricing
Price Comparison with Others
Feature Comparison with Others
Install Mobile App
Sign up
Creating account...
Invalid character in username! Only 0-9, a-z, A-Z, _, -, . allowed.
Username is required!
Invalid email address!
E-mail is required!
Password is required!
Password is invalid!
Password and confirmation do not match.
Confirm password is required!
I accept
Membership Agreement
Please read the Membership Agreement and check "I accept"!
Free Quick Sign-up
Sign-up Page
Log in
Signing in...
Username or e-mail address is required!
Password is required!
Keep me logged in
Quick Login
Forgot Password
Up
Upload
Download
Share
Publish
New Folder
New File
Copy
Cut
Delete
Paste
Rate
Upgrade
Rotate
Effect
Edit
Slide
History
// Boost string_algo library erase.hpp header file ---------------------------// // Copyright Pavol Droba 2002-2006. // // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // See http://www.boost.org/ for updates, documentation, and revision history. #ifndef BOOST_STRING_ERASE_HPP #define BOOST_STRING_ERASE_HPP #include
#include
#include
#include
#include
#include
#include
#include
#include
/*! \file Defines various erase algorithms. Each algorithm removes part(s) of the input according to a searching criteria. */ namespace boost { namespace algorithm { // erase_range -------------------------------------------------------// //! Erase range algorithm /*! Remove the given range from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. \param Output An output iterator to which the result will be copied \param Input An input sequence \param SearchRange A range in the input to be removed \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template
inline OutputIteratorT erase_range_copy( OutputIteratorT Output, const RangeT& Input, const iterator_range< BOOST_STRING_TYPENAME range_const_iterator
::type>& SearchRange ) { return find_format_copy( Output, Input, range_finder(SearchRange), empty_formatter(Input) ); } //! Erase range algorithm /*! \overload */ template
inline SequenceT erase_range_copy( const SequenceT& Input, const iterator_range< BOOST_STRING_TYPENAME range_const_iterator
::type>& SearchRange ) { return find_format_copy( Input, range_finder(SearchRange), empty_formatter(Input) ); } //! Erase range algorithm /*! Remove the given range from the input. The input sequence is modified in-place. \param Input An input sequence \param SearchRange A range in the input to be removed */ template
inline void erase_range( SequenceT& Input, const iterator_range< BOOST_STRING_TYPENAME range_iterator
::type>& SearchRange ) { find_format( Input, range_finder(SearchRange), empty_formatter(Input) ); } // erase_first --------------------------------------------------------// //! Erase first algorithm /*! Remove the first occurrence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. \param Output An output iterator to which the result will be copied \param Input An input string \param Search A substring to be searched for \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename Range1T, typename Range2T> inline OutputIteratorT erase_first_copy( OutputIteratorT Output, const Range1T& Input, const Range2T& Search ) { return find_format_copy( Output, Input, first_finder(Search), empty_formatter(Input) ); } //! Erase first algorithm /*! \overload */ template
inline SequenceT erase_first_copy( const SequenceT& Input, const RangeT& Search ) { return find_format_copy( Input, first_finder(Search), empty_formatter(Input) ); } //! Erase first algorithm /*! Remove the first occurrence of the substring from the input. The input sequence is modified in-place. \param Input An input string \param Search A substring to be searched for. */ template
inline void erase_first( SequenceT& Input, const RangeT& Search ) { find_format( Input, first_finder(Search), empty_formatter(Input) ); } // erase_first ( case insensitive ) ------------------------------------// //! Erase first algorithm ( case insensitive ) /*! Remove the first occurrence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive. \param Output An output iterator to which the result will be copied \param Input An input string \param Search A substring to be searched for \param Loc A locale used for case insensitive comparison \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename Range1T, typename Range2T> inline OutputIteratorT ierase_first_copy( OutputIteratorT Output, const Range1T& Input, const Range2T& Search, const std::locale& Loc=std::locale() ) { return find_format_copy( Output, Input, first_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } //! Erase first algorithm ( case insensitive ) /*! \overload */ template
inline SequenceT ierase_first_copy( const SequenceT& Input, const RangeT& Search, const std::locale& Loc=std::locale() ) { return find_format_copy( Input, first_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } //! Erase first algorithm ( case insensitive ) /*! Remove the first occurrence of the substring from the input. The input sequence is modified in-place. Searching is case insensitive. \param Input An input string \param Search A substring to be searched for \param Loc A locale used for case insensitive comparison */ template
inline void ierase_first( SequenceT& Input, const RangeT& Search, const std::locale& Loc=std::locale() ) { find_format( Input, first_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } // erase_last --------------------------------------------------------// //! Erase last algorithm /*! Remove the last occurrence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. \param Output An output iterator to which the result will be copied \param Input An input string \param Search A substring to be searched for. \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename Range1T, typename Range2T> inline OutputIteratorT erase_last_copy( OutputIteratorT Output, const Range1T& Input, const Range2T& Search ) { return find_format_copy( Output, Input, last_finder(Search), empty_formatter(Input) ); } //! Erase last algorithm /*! \overload */ template
inline SequenceT erase_last_copy( const SequenceT& Input, const RangeT& Search ) { return find_format_copy( Input, last_finder(Search), empty_formatter(Input) ); } //! Erase last algorithm /*! Remove the last occurrence of the substring from the input. The input sequence is modified in-place. \param Input An input string \param Search A substring to be searched for */ template
inline void erase_last( SequenceT& Input, const RangeT& Search ) { find_format( Input, last_finder(Search), empty_formatter(Input) ); } // erase_last ( case insensitive ) ------------------------------------// //! Erase last algorithm ( case insensitive ) /*! Remove the last occurrence of the substring from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive. \param Output An output iterator to which the result will be copied \param Input An input string \param Search A substring to be searched for \param Loc A locale used for case insensitive comparison \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename Range1T, typename Range2T> inline OutputIteratorT ierase_last_copy( OutputIteratorT Output, const Range1T& Input, const Range2T& Search, const std::locale& Loc=std::locale() ) { return find_format_copy( Output, Input, last_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } //! Erase last algorithm ( case insensitive ) /*! \overload */ template
inline SequenceT ierase_last_copy( const SequenceT& Input, const RangeT& Search, const std::locale& Loc=std::locale() ) { return find_format_copy( Input, last_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } //! Erase last algorithm ( case insensitive ) /*! Remove the last occurrence of the substring from the input. The input sequence is modified in-place. Searching is case insensitive. \param Input An input string \param Search A substring to be searched for \param Loc A locale used for case insensitive comparison */ template
inline void ierase_last( SequenceT& Input, const RangeT& Search, const std::locale& Loc=std::locale() ) { find_format( Input, last_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } // erase_nth --------------------------------------------------------------------// //! Erase nth algorithm /*! Remove the Nth occurrence of the substring in the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. \param Output An output iterator to which the result will be copied \param Input An input string \param Search A substring to be searched for \param Nth An index of the match to be replaced. The index is 0-based. For negative N, matches are counted from the end of string. \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename Range1T, typename Range2T> inline OutputIteratorT erase_nth_copy( OutputIteratorT Output, const Range1T& Input, const Range2T& Search, int Nth ) { return find_format_copy( Output, Input, nth_finder(Search, Nth), empty_formatter(Input) ); } //! Erase nth algorithm /*! \overload */ template
inline SequenceT erase_nth_copy( const SequenceT& Input, const RangeT& Search, int Nth ) { return find_format_copy( Input, nth_finder(Search, Nth), empty_formatter(Input) ); } //! Erase nth algorithm /*! Remove the Nth occurrence of the substring in the input. The input sequence is modified in-place. \param Input An input string \param Search A substring to be searched for. \param Nth An index of the match to be replaced. The index is 0-based. For negative N, matches are counted from the end of string. */ template
inline void erase_nth( SequenceT& Input, const RangeT& Search, int Nth ) { find_format( Input, nth_finder(Search, Nth), empty_formatter(Input) ); } // erase_nth ( case insensitive ) ---------------------------------------------// //! Erase nth algorithm ( case insensitive ) /*! Remove the Nth occurrence of the substring in the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive. \param Output An output iterator to which the result will be copied \param Input An input string \param Search A substring to be searched for. \param Nth An index of the match to be replaced. The index is 0-based. For negative N, matches are counted from the end of string. \param Loc A locale used for case insensitive comparison \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename Range1T, typename Range2T> inline OutputIteratorT ierase_nth_copy( OutputIteratorT Output, const Range1T& Input, const Range2T& Search, int Nth, const std::locale& Loc=std::locale() ) { return find_format_copy( Output, Input, nth_finder(Search, Nth, is_iequal(Loc)), empty_formatter(Input) ); } //! Erase nth algorithm /*! \overload */ template
inline SequenceT ierase_nth_copy( const SequenceT& Input, const RangeT& Search, int Nth, const std::locale& Loc=std::locale() ) { return find_format_copy( Input, nth_finder(Search, Nth, is_iequal(Loc)), empty_formatter(Input) ); } //! Erase nth algorithm /*! Remove the Nth occurrence of the substring in the input. The input sequence is modified in-place. Searching is case insensitive. \param Input An input string \param Search A substring to be searched for. \param Nth An index of the match to be replaced. The index is 0-based. For negative N, matches are counted from the end of string. \param Loc A locale used for case insensitive comparison */ template
inline void ierase_nth( SequenceT& Input, const RangeT& Search, int Nth, const std::locale& Loc=std::locale() ) { find_format( Input, nth_finder(Search, Nth, is_iequal(Loc)), empty_formatter(Input) ); } // erase_all --------------------------------------------------------// //! Erase all algorithm /*! Remove all the occurrences of the string from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. \param Output An output iterator to which the result will be copied \param Input An input sequence \param Search A substring to be searched for. \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename Range1T, typename Range2T> inline OutputIteratorT erase_all_copy( OutputIteratorT Output, const Range1T& Input, const Range2T& Search ) { return find_format_all_copy( Output, Input, first_finder(Search), empty_formatter(Input) ); } //! Erase all algorithm /*! \overload */ template
inline SequenceT erase_all_copy( const SequenceT& Input, const RangeT& Search ) { return find_format_all_copy( Input, first_finder(Search), empty_formatter(Input) ); } //! Erase all algorithm /*! Remove all the occurrences of the string from the input. The input sequence is modified in-place. \param Input An input string \param Search A substring to be searched for. */ template
inline void erase_all( SequenceT& Input, const RangeT& Search ) { find_format_all( Input, first_finder(Search), empty_formatter(Input) ); } // erase_all ( case insensitive ) ------------------------------------// //! Erase all algorithm ( case insensitive ) /*! Remove all the occurrences of the string from the input. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. Searching is case insensitive. \param Output An output iterator to which the result will be copied \param Input An input string \param Search A substring to be searched for \param Loc A locale used for case insensitive comparison \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename Range1T, typename Range2T> inline OutputIteratorT ierase_all_copy( OutputIteratorT Output, const Range1T& Input, const Range2T& Search, const std::locale& Loc=std::locale() ) { return find_format_all_copy( Output, Input, first_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } //! Erase all algorithm ( case insensitive ) /*! \overload */ template
inline SequenceT ierase_all_copy( const SequenceT& Input, const RangeT& Search, const std::locale& Loc=std::locale() ) { return find_format_all_copy( Input, first_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } //! Erase all algorithm ( case insensitive ) /*! Remove all the occurrences of the string from the input. The input sequence is modified in-place. Searching is case insensitive. \param Input An input string \param Search A substring to be searched for. \param Loc A locale used for case insensitive comparison */ template
inline void ierase_all( SequenceT& Input, const RangeT& Search, const std::locale& Loc=std::locale() ) { find_format_all( Input, first_finder(Search, is_iequal(Loc)), empty_formatter(Input) ); } // erase_head --------------------------------------------------------------------// //! Erase head algorithm /*! Remove the head from the input. The head is a prefix of a sequence of given size. If the sequence is shorter then required, the whole string is considered to be the head. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. \param Output An output iterator to which the result will be copied \param Input An input string \param N Length of the head. For N>=0, at most N characters are extracted. For N<0, size(Input)-|N| characters are extracted. \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename RangeT> inline OutputIteratorT erase_head_copy( OutputIteratorT Output, const RangeT& Input, int N ) { return find_format_copy( Output, Input, head_finder(N), empty_formatter( Input ) ); } //! Erase head algorithm /*! \overload */ template
inline SequenceT erase_head_copy( const SequenceT& Input, int N ) { return find_format_copy( Input, head_finder(N), empty_formatter( Input ) ); } //! Erase head algorithm /*! Remove the head from the input. The head is a prefix of a sequence of given size. If the sequence is shorter then required, the whole string is considered to be the head. The input sequence is modified in-place. \param Input An input string \param N Length of the head For N>=0, at most N characters are extracted. For N<0, size(Input)-|N| characters are extracted. */ template
inline void erase_head( SequenceT& Input, int N ) { find_format( Input, head_finder(N), empty_formatter( Input ) ); } // erase_tail --------------------------------------------------------------------// //! Erase tail algorithm /*! Remove the tail from the input. The tail is a suffix of a sequence of given size. If the sequence is shorter then required, the whole string is considered to be the tail. The result is a modified copy of the input. It is returned as a sequence or copied to the output iterator. \param Output An output iterator to which the result will be copied \param Input An input string \param N Length of the head. For N>=0, at most N characters are extracted. For N<0, size(Input)-|N| characters are extracted. \return An output iterator pointing just after the last inserted character or a modified copy of the input \note The second variant of this function provides the strong exception-safety guarantee */ template< typename OutputIteratorT, typename RangeT> inline OutputIteratorT erase_tail_copy( OutputIteratorT Output, const RangeT& Input, int N ) { return find_format_copy( Output, Input, tail_finder(N), empty_formatter( Input ) ); } //! Erase tail algorithm /*! \overload */ template
inline SequenceT erase_tail_copy( const SequenceT& Input, int N ) { return find_format_copy( Input, tail_finder(N), empty_formatter( Input ) ); } //! Erase tail algorithm /*! Remove the tail from the input. The tail is a suffix of a sequence of given size. If the sequence is shorter then required, the whole string is considered to be the tail. The input sequence is modified in-place. \param Input An input string \param N Length of the head For N>=0, at most N characters are extracted. For N<0, size(Input)-|N| characters are extracted. */ template
inline void erase_tail( SequenceT& Input, int N ) { find_format( Input, tail_finder(N), empty_formatter( Input ) ); } } // namespace algorithm // pull names into the boost namespace using algorithm::erase_range_copy; using algorithm::erase_range; using algorithm::erase_first_copy; using algorithm::erase_first; using algorithm::ierase_first_copy; using algorithm::ierase_first; using algorithm::erase_last_copy; using algorithm::erase_last; using algorithm::ierase_last_copy; using algorithm::ierase_last; using algorithm::erase_nth_copy; using algorithm::erase_nth; using algorithm::ierase_nth_copy; using algorithm::ierase_nth; using algorithm::erase_all_copy; using algorithm::erase_all; using algorithm::ierase_all_copy; using algorithm::ierase_all; using algorithm::erase_head_copy; using algorithm::erase_head; using algorithm::erase_tail_copy; using algorithm::erase_tail; } // namespace boost #endif // BOOST_ERASE_HPP
erase.hpp
Page URL
File URL
Prev
7/24
Next
Download
( 29 KB )
Note: The DriveHQ service banners will NOT be displayed if the file owner is a paid member.
Comments
Total ratings:
0
Average rating:
Not Rated
Would you like to comment?
Join DriveHQ
for a free account, or
Logon
if you are already a member.