Example Program
ModView
How to modify strings with a per-character functor.
Remarks
Take a look at the file seqan/modifier/modifier_functors.h to see what functors are already part of SeqAn.
A tutorial about the use of a user-defined modifier.
1#include <iostream>
2#include <seqan/file.h>
3#include <seqan/modifier.h>
4
5using namespace seqan;
6
A user-defined modifier that transforms all characters to upper case.
7struct MyFunctor : public ::std::unary_function<char,char> 
8{
9    inline char operator()(char x) const 
10    {
11        if (('a' <= x) && (x <= 'z')) return (x + ('A' - 'a'));
12        return x; 
13    }
14};
15
16
17int main ()
18{
The modifier is applied to a string.
19    String<char> myString = "A man, a plan, a canal-Panama";
20    ModifiedString< String<char>, ModView<MyFunctor> > myModifier(myString);
21
22    ::std::cout << myString << ::std::endl;
23    ::std::cout << myModifier << ::std::endl;
24    infix(myString, 9, 9) = "master ";
25    ::std::cout << myString << ::std::endl;
26    ::std::cout << myModifier << ::std::endl;
27
28    return 0;
29}
Output
weese@tanne:~/seqan$ cd demos
weese@tanne:~/seqan/demos$ make modifier_modview
weese@tanne:~/seqan/demos$ ./modifier_modview
A man, a plan, a canal-Panama
A MAN, A PLAN, A CANAL-PANAMA
A man, a master plan, a canal-Panama
A MAN, A MASTER PLAN, A CANAL-PANAMA
weese@tanne:~/seqan/demos$
SeqAn - Sequence Analysis Library - www.seqan.de
 

Page built @2011/02/08 21:37:01