我的c++学习笔记--一些资料收集
今日题目:
世界杯来了。其实和欧洲冠军联赛是一样的,一定一定一定要注意初始化时的位置,因为这个排bug半个小时。字符串分割。
n, 还是n。string的一些函数,strstr。
开关与灯。时间复杂度有点高,但是都能通过。注意输入。
可删除的点。注意条件判断。
字符串排序。可以用struct关联,时间复杂度高,用sort降复杂度。
个人笔记,不保证正确,请谨慎参考。
目录
1.使用stringstream getline 进行字符串分割
1.使用stringstream getline 进行字符串分割
getline()的原型是istream& getline ( istream &is , string &str , char delim );
参数解释:
(1)istream &is 表示一个输入流,例如cin;
(2)string&str表示把从输入流读入的字符串存放在这个字符串str中;
(3)char delim表示遇到这个字符停止读入,在不设置的情况下系统默认该字符为’\n’,因此getline函数遇到换行符会自动结束读取操作。
(可以通过改变函数中第三个终止符参数对字符串进行分割。)
2.string类
string::npos
strstr(str1,str2)函数,用来判断str2是否为str1的子串
str1,str2都为char指针
未找到时返回值为null
reverse函数,用来转置子串。
1.1 函数功能介绍 时间复杂度O(n)
将容器[first, last )范围内的元素颠倒顺序放置
1.2 函数参数介绍
first_iterator, last_iterator 为函数两个参数,分别输入容器或者数组初始位置和结束位置的迭代器位置
1.3 函数细节注意
a. 头文件 “algorithm”
b. 使用该函数的容器必须有内置的迭代器函数或者有指针指向,例如queue容器和stack容器没有内置的迭代器函数就没有对应的参数输入是无法使用的
a[] reverse(a, a + 3);
string a = "123"; reverse(a.begin(), a.end());
string
begin() 返回第一个有效数据位置的迭代器;
end() 返回最后一个有效数据的下一个位置的迭代器也就是‘\0’;
rbegin()返回的是最后一个有效元素位置的迭代器;
rend()返回的是第一个元素的前一个位置的迭代器;