打印容器元素问题

二戒 2014-10-30 10:07:28

#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
vector<int> twoSum(vector<int> &numbers, int target)
{
vector<int> sum(2); //此处定义了一个含有2个元素的容器
for (int i = 0; i != numbers.size(); i++)
for (int j = i + 1; j != numbers.size(); j++)
if (numbers[i] + numbers[j] == target)
{
sum.push_back(i + 1);
sum.push_back(j + 1);
break;
}
return sum;
}
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> s{2,7,11,14};
vector<int> s2=twoSum(s, 13); //结果赋给s2
cout << s2.size() << endl; //打印容器长度为4,这是为什么?
for (int i = 0; i <s2.size(); ++i)
cout << s2[i] << endl;
return 0;
}

...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
li4c 2014-10-31
  • 打赏
  • 举报
回复
递归打印容器内容
/*************************************************************************
    > File Name: p6_33.cpp
    > Author: Jukay
    > Mail: hellojukay@gmail.com 
    > Created Time: 2014年10月30日 星期四 16时51分27秒
 ************************************************************************/
#include<vector>
#include<iostream>
using namespace std;
void print_vector(vector<int> &v, int pos)
{
	if(pos == v.size())
		return ;
	cout << v [pos++] << ' ';
	print_vector(v, pos);
}

int main()
{
	vector<int> v = {1,2,5,85,8,2,8};
	print_vector(v,0);
	return 0;
}
huguangshanse00 2014-10-30
  • 打赏
  • 举报
回复
vector<int> sum(2) ::定义了2个整数元素的向量,没有给出初始值,因而其值不确定。 后面执行sum.push_back 操作,即将数据新加入向量sum中,所以程序中打印长度为4, 另外,如果将定义改为vector<int> sum; 即不会出现打印长度为4的情况。
missheaven2011 2014-10-30
  • 打赏
  • 举报
回复
本来有两个元素,又push进两个

64,653

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧