1、指针是迭代器,string类型也是容器。可以返回string.begin()等作为迭代器。
指针迭代器
#include <iostream>
#include <algorithm>
using namespace std;
#define SIZE 100
int iarray[SIZE];
int main()
{
iarray[20] = 50;
int* ip = find(iarray, iarray + SIZE, 50);
if (ip == iarray + SIZE)
//if(ip== NULL)当使用STL函数时,只能测试ip是否和past-the-end 值是否相等
//测试函数返回值和NULL是否相等是不正确的
cout << "50 not found in array" << endl;
else
cout << *ip << " found in array" << endl;
return 0;
}
2、迭代器操作时,vector。queue的插入删除操作,不要用保存的迭代器值。
first=vector.begin(), last=vector.end(); if(first != last) insert...插入过程会导致迭代器失效,出现问题!!erase 似乎也会导致迭代器失效,继续实验。
3、关于容器的声明:
string str[3]={"I"."love","china"};
vector<string> vstr(str,str+str.size());
4、全局数组声明自动初始化,局部的则是不定的
int arr[20]; //初始化为0
int main()
{
int arr1[20]; //未初始化
return 0;
}