1. 程式人生 > >筆試編程題常用的一些技巧方法

筆試編程題常用的一些技巧方法

否則 space 返回 範圍 初始化方式 聲明 insert col 檢查

- 但卻容易忘記的

- pair元素賦值

1,初始化方式

      pair<int, int> p(1, 2);

2,單獨賦值

      pair<int, int> p;

      p.first = 1;

      p.second = 2;

3,構造函數

      pair<int, int> p1(1, 2);

      pair<int, int> p2(p1);

4,= 賦值

      pair<int, int> p1(1, 2);

      pair
<int, int> p2 = p1; 5, make_pair 賦值 pair<int, int> p = make_pair(1, 2);

- map元素的遍歷: 使用叠代器iter->first,second 訪問

#include <map>  
#include <string>  
#include <iostream>  
using namespace std;

int main()
{
    //變量聲明的方式,和STL中其他方式的聲明一樣
    map<int
, string> mapStudent; //map的三種插入方式 mapStudent.insert(map<int, string>::value_type(1, "student_one")); mapStudent.insert(pair<int, string>(2, "student_two")); //直接賦值的插入方式可以覆蓋相同的值,但是其余兩種方式不行 mapStudent[3] = "student_three"; map<int, string>::iterator iter;
for (iter = mapStudent.begin(); iter != mapStudent.end(); iter++) cout << iter->first << << iter->second << endl; //map的查找方式 map類型的結構的find函數返回的值的類型為叠代器 /** 查找沒有的話返回mapStudent.end(),但是打印會引發異常,也就是說可以直接打印: cout << mapStudent.end()->first<<‘ ‘<<mapStudent.end()->second << endl; 但是不能直接打印返回的叠代器的,不知到為何!!!!!!!!! */ map<int, string >::iterator it; it = mapStudent.find(1); cout << it->first<< <<it->second << endl; //mapStudent.end()返回值是指向最後一個元素的叠代器 //cout << mapStudent.end()->first<<‘ ‘<<mapStudent.end()->second << endl; //刪除元素 iter = mapStudent.find(1); mapStudent.erase(iter); int n = mapStudent.erase(2);//如果刪除了返回1,否則返回0 mapStudent.erase(mapStudent.begin(), mapStudent.end()); //等於mapStudent.clear() system("pause"); return 0; }

- atoi 和stoi

vs環境下:
stoi函數默認要求輸入的參數字符串是符合int範圍的[-2147483648, 2147483647],否則會runtime error。
atoi函數則不做範圍檢查,若超過int範圍,則顯示-2147483648(溢出下界)或者2147483647(溢出上界)。

stoi頭文件:<string>,c++函數
atoi頭文件:<cstdlib>,c函數

筆試編程題常用的一些技巧方法