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:再给你一个简单的小

程序段,可以说明iterator的用处~

   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:  } 
posted on 2014-02-17 19:54  zhuxuekui3  阅读(780)  评论(0编辑  收藏  举报