c++

1、printf string型字符串

1 printf("%s", s.c_str());

输入string型字符串

1 cin >> s;

而不能用

1 scanf_s("%s", &s);

s1.compare(s2):

相等返回0;s1 > s2 返回 1;s1 < s2 返回-1.

2、map的遍历

1 map<string, vector<Node>> mapp;
2 
3 for (auto it : mapp)
4 {
5     string s = it.first;
6     vector<Node> v = it.second;
7 }

另外map会默认初始化,如map<int, int> mp; 则没有赋值的情况下mp[0] = 0;

3、字符串截取

s.substr(pos, n)    截取s中从pos开始(包括0)的n个字符的子串,并返回

s.substr(pos)        截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回

4、vector 清空

v.clear();

5、set使用

1 set<int> s;
2 int t = 0;
3 s.insert(t);
4 for (auto it = s.begin(); it != s.end(); it++)
5     cout << *it;

set是有序的,不重复的。

6、queue的使用

1.入队:如q.push(x):将x元素接到队列的末端;

2.出队:如q.pop() 弹出队列的第一个元素,并不会返回元素的值

3.访问队首元素:如q.front()

4.访问队尾元素,如q.back();

5.访问队中的元素个数,如q.size();

7、stack的使用

栈顶元素:s.top()。

其余和queue类似。

8、fill函数填充数组

1 int a[10], b[10][10];
2 fill(a, a + 10, -1);
3 fill(a[0], a[0] + 10 * 10, -1);

9、字符串转小写

1 for (int j = 0; j < s.size(); j++)
2     s[j] = tolower(s[j]);

 10、cout输出double型的整数:

结果会不带小数点。比如:

1 cout << 1.0

输出结果为1。

11、为数组赋某特定值

1 fill(visit, visit + n, 0)

12、双向链表list使用

begin() :返回第一个元素的迭代器

end():返回最后一个元素的迭代器

 

rbegin():返回最后一个元素的逆向迭代器

rend():返回第一个元素的逆向迭代器

 

front():返回第一个元素

back():返回最后一个元素

push_front() / push_back():在开头 / 结尾添加元素

pop_front() / pop_back():在开头 / 结尾删除元素

 

erase(it):通过指向链表中一个元素的迭代器删除该元素。

remove(val):通过元素的值删除一个元素。

13、迭代器

设it为指向一个变量的迭代器,则*it得到该变量的引用。

14、pair

pair<int, int> p;

通过first或second两个成员变量可分别访问两个元素(注意不是函数,没有括号)。

make_pair(a, b)可返回一个pair。

posted @ 2018-08-18 15:56  bloglxc  阅读(141)  评论(0编辑  收藏  举报