how can i read to c++ string from position one not zero
# | User | Rating |
---|---|---|
1 | tourist | 3985 |
2 | jiangly | 3814 |
3 | jqdai0815 | 3682 |
4 | Benq | 3529 |
5 | orzdevinwang | 3526 |
6 | ksun48 | 3517 |
7 | Radewoosh | 3410 |
8 | hos.lyric | 3399 |
9 | ecnerwala | 3392 |
9 | Um_nik | 3392 |
# | User | Contrib. |
---|---|---|
1 | cry | 169 |
2 | maomao90 | 162 |
2 | Um_nik | 162 |
4 | atcoder_official | 161 |
5 | djm03178 | 158 |
6 | -is-this-fft- | 157 |
7 | adamant | 155 |
8 | awoo | 154 |
8 | Dominater069 | 154 |
10 | luogu_official | 150 |
how can i read to c++ string from position one not zero
Name |
---|
If you are using char*, you can make sth like
no i am using std :: string
s = "#" + s;
I forgot, ty
I actually use this whenever I use strings (though for not that long time). Got a problem xd? It is comfortable, makes everything much easier for those indexing from 1 (I belong to that set) and in fact it is linear in time, but time it executes is really neglectable, surely much shorter than that needed to read it.
char * const str = &s[0] - 1;
Is this constant time?
I'm not sure, but it should be at worst O(n), and since you read the string, the program must be at least O(n), so it shouldn't matter anyway.