C++ Primer 读书笔记 - 第三章
1. std::string
size()函数返回值为string::size_type,用下标时,也用string::size_type作为index的类型
#include <iostream> #include <cstdio> #include <string> using namespace std; int main() { string s = "abc"; cout << s << endl; cin >> s; cout << s << endl; string line; while (getline(cin, line)) { if (line.empty()) break; cout << line << endl; } string::size_type len = s.size(); cout << len << endl; s[0] = toupper(s[0]); cout << s << endl; string s1; cout << s1[0] << endl; /* string str = "hello" + "world"; */ //error: two string literals addition is invalid return 0; }
2. std::vector
用push_back()函数插入元素,用下标不能用来插入元素,但是map可以,如map[key] = value就相当于把元素插入了。
// an iterator that cannot write elements vector<int>::const_iterator // an iterator whose value cannot change const vector<int>::iterator //不能做it++
再就是iterators在vector插入了新的元素后就会失效,但是std::list不会。
#include <iostream> #include <vector> using namespace std; int main() { vector<int> vec(10, 9); vector<int>::iterator it = vec.begin(); it++; cout << *it << endl; vec.push_back(11); cout << *it << endl; return 0; }
#include <list> #include <iostream> using namespace std; int main() { list<int> mylist; mylist.push_back(1); mylist.push_back(2); mylist.push_back(3); mylist.push_back(4); list<int>::iterator it = mylist.begin(); it++; cout << *it << endl; mylist.push_back(5); cout << *it << endl; return 0; }
3. std::bitset
一种是用unsigned value进行初始化,一种是用字符串初始化,比如“0011”,那么bit[0] = str[3]
---
可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明
可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明