memcpy( )的使用以及迭代器的使用
memcpy() -- 拷贝内存内容
相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy()
表头文件: #include <string.h>
定义函数: void *memcpy(void *dest, const void *src, size_t n)
函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'\0'而结束
返回值: 返回指向dest的指针
附加说明: 指针src和dest所指的内存区域不可重叠
1: #include <string.h>
2: #include <stdio.h>
3:
4: int main()
5: {
6: char a[30] = "string (a)";
7: char b[30] = "hi\0zengxiaolong";
8: int i;
9:
10: strcpy(a, b); //a[30] = "hi\0ing (a)"
11: printf("strcpy():");
12: for(i = 0; i < 30; i++)
13: printf("%c", a[i]); //hi ing (a)
14:
15:
16: memcpy(a, b, 30); //a[30] = "hi\0zengxiaolong"
17: printf("\nmemcpy():");
18: for(i = 0; i < 30; i++)
19: printf("%c", a[i]); //hi zengxiaolong
20: printf("\n i = %d\n", i); //30
21:
22: }
iterator是C++标准库(STL)中的迭代器~~~
比如你建一个链表(要记得#include <list>
#include <iostream>)
list<char> A;
再list<char>::iterator it,这样,就可以对链表进行遍历了~
其实,你可以把它理解成类似指针的东西~当然,只是用处差不多,使用方式和声明方式可是完全不同的喔~~
PS:再给你一个简单的小
1: #include <list>
2: #include <iostream>
3: using namespace std;
4:
5: void main(void)
6: {
7: int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
8: list<int> name(a,a+10);
9:
10: list<int>::iterator it;
11: for (it = name.begin(); it != name.end(); it++)
12: {
13: cout << *it << endl; //就是可以指向容器中元素的东西,就好像指针那样,但是它不是指针。
14: }
15: }