动态数组(C++)

动态数组:
1).从标准输入读入数据建立一个int型vector对象,然后动态创建一个与该vector对象大小一致的数组,把vector对象的所有元素复制给数组
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main()
{
 cout<<"Enter some numbers(ctrl+z to end): "<<endl;
 vector<int> ivec;
 int ival;
 while(cin>>ival)
  ivec.push_back(ival);
 if(ivec.size()==0)
 {
  cout<<"No elements! "<<endl;
  return -1;
 }

 size_t array_size=ivec.size();
 int *pia=new int[array_size];
 int *q=pia;
 for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter,++q)
 {
  *q=*iter;
  delete []pia;
 }
 cout<<endl;

 return 0;
}

2).连接两个C风格字符串字面值,把结果存储在一个C风格字符串中
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
 const char *cp1="We are";
 const char *cp2="good friends";
 size_t len=strlen(cp1)+strlen(cp2);
 char *result_str=new char[len+1];
 strcpy(result_str,cp1);
 strcat(result_str,cp2);
 cout<<result_str<<endl;
 delete []result_str;

 return 0;
}
3).连接两个string类型字符串
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

int main()
{
 const string str1("We are ");
 const string str2("good friends,too");
 string result_str;
 result_str=str1;
 result_str+=str2;

 cout<<result_str<<endl;

 return 0;
}

4).从标准设备中读入字符串,并把该字符串存放在字符数组中
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <string>
using namespace std;

int main()
{
 string in_str;  //用于读入字符串的string对象
 const size_t str_size=10;
 char result_str[str_size+1];
 //读入字符串
 cout<<"Enter a string(<="<<str_size<<"characters): "<<endl;
 cin>>in_str;
 //计算需复制的字符的数目
 size_t len=strlen(in_str.c_str());
 if(len>str_size)
 {
  len=str_size;
  cout<<"String is longer than "<<str_size
   <<"characters and is stored only"
   <<str_size<<"characters!"<<endl;
 }
 //复制len个字符至字符数组result_str
 strncpy(result_str,in_str.c_str(),len);
 //在末尾加上一个空字符(null空字符)
 result_str[len+1]='/0';
 cout<<result_str<<endl;

 return 0;
}
5).用int型数组初始化vector
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;

int main()
{
 const size_t array_size=8;
 int int_arr[array_size];
 //输入数组元素
 cout<<"Enter"<<array_size<<" numbers: "<<endl;
 for(size_t ix=0;ix!=array_size;++ix)
  cin>>int_arr[ix];
 //用int型数组初始化vector对象
 vector<int> ivec(int_arr,int_arr+array_size);
 for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)
  cout<<*iter<<" ";
 cout<<endl;

 return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值