您的位置:首页 > 编程语言 > C语言/C++

C++中list简单用法

2018-02-27 09:36 260 查看
List介绍:

    List是stl实现的双向链表,与向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢。

示例代码1:

#include <list>
#include <stdio.h>
using namespace std;

int main(void)
{
list<int> myList;
myList.push_back(1);
myList.push_back(2);
myList.push_back(3);

list<int>::iterator iter;
for (iter = myList.begin(); iter != myList.end(); iter++)
{
printf("%d\n", *iter);
}

return 0;
}

示例代码2:
using namespace std;

typedef struct logFilter
{
char keyword[64];
}logFilter_t;

void extractLogKeyword(char *szUploadFilter, list<logFilter_t> *pUploadKeywordList, list<logFilter_t> *pNotUploadKeywordList)
{
int readLen;
logFilter_t tmpStBuf;
char *point = NULL;
char *pszUploadFilter = szUploadFilter;
//printf("%s\n\n", pszUploadFilter);

while(pszUploadFilter[0] == '^')
{
memset(tmpStBuf.keyword, 0, sizeof(tmpStBuf.keyword));
if(pszUploadFilter[1] == '~')
{
pszUploadFilter += 2;
point = strstr(pszUploadFilter, "^");
if(point != NULL)
{
readLen = point - pszUploadFilter;
memcpy(tmpStBuf.keyword, pszUploadFilter, readLen);
pszUploadFilter = point;
if(readLen > 0)
pNotUploadKeywordList->push_back(tmpStBuf);
}
else
{
memcpy(tmpStBuf.keyword, pszUploadFilter, strlen(pszUploadFilter));
pNotUploadKeywordList->push_back(tmpStBuf);
break;
}
}
else
{
pszUploadFilter += 1;
point = strstr(pszUploadFilter, "^");
if(point != NULL)
{
readLen = point - pszUploadFilter;
memcpy(tmpStBuf.keyword, pszUploadFilter, readLen);
pszUploadFilter = point;
if(readLen > 0)
pUploadKeywordList->push_back(tmpStBuf);

}
else
{
memcpy(tmpStBuf.keyword, pszUploadFilter, strlen(pszUploadFilter));
if(strlen(pszUploadFilter) > 0)
pUploadKeywordList->push_back(tmpStBuf);
break;
}
}
}
}

int main(void)
{

list<logFilter_t> pUploadKeywordList;
list<logFilter_t> pNotUploadKeywordList;
char buf[256] = "^~normalLog^~camStatus";
if(buf[0] != '^' || strlen(buf) == 1)
printf("invalid\n");
extractLogKeyword(buf, &pUploadKeywordList, &pNotUploadKeywordList);

list<logFilter_t>::iterator iter;
for (iter = pUploadKeywordList.begin(); iter != pUploadKeywordList.end(); iter++)
{
printf("upload : %s\n", iter->keyword);
}
for (iter = pNotUploadKeywordList.begin(); iter != pNotUploadKeywordList.end(); iter++)
{
printf("notUpload : %s\n", iter->keyword);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: