一、理解模板:就是类似于写一个int类型的定义,在main函数中使用时,可以直接声明模板类型的变量
1,制定模板
2,传参时需要传指针,不能有返回值
3,声明一个模板map类型的变量
4,得到这个map
二、输入:argv[1]
rtsp://admin:hhy8649116@33.71.48.38:554/h264/ch33/main/av_stream
rtsp://admin:hhy8649116@33.71.48.39:554/h264/ch33/main/av_stream
rtsp://admin:hhy8649116@33.71.48.42:554/h264/ch33/main/av_stream
rtsp://admin:hhy8649116@33.71.48.68:554/h264/ch33/main/av_stream
rtsp://admin:hhy8649116@33.71.48.71:554/h264/ch33/main/av_stream
rtsp://admin:hhy8649116@33.71.48.72:554/h264/ch33/main/av_stream
rtsp://admin:hhy8649116@33.71.48.73:554/h264/ch33/main/av_stream
三、实现
template<typename Map>//1,制定模板
void getRtsp(string ImgPath,Map& rtspMap) {//2,传参时需要传指针,不能有返回值
ifstream infile;
infile.open(ImgPath);
assert(infile.is_open());//若失败,则输出错误消息,并终止程序运行(txt)
string videoname;
int num =0;
while(getline(infile,videoname)){
rtspMap[num] = videoname;
num++;
}
}
int main(int argc,char** argv){
if (argc!=2){
cout<<"please add parameter: path of rtsp's txt"<<endl;
}
string ImgPath = string(argv[1]);
map<int, string> rtspMap;//3,声明一个模板map类型的变量
getRtsp(ImgPath,rtspMap);//4,得到这个map
cout<<rtspMap[1]<<endl;//打印map的值
}
四、输出
rtsp://admin:hhy8649116@33.71.48.39:554/h264/ch33/main/av_stream