给vector对象添加元素的方法


#include<iostream>
#include<vector>

using namespace std;

int main()
{
//初始化10个元素,每个值都为0
vector<int> fvec(10);
//输出
for(vector<int>::size_type ix=0;ix!=fvec.size();ix++)
cout<<fvec[ix];
cout<<endl;

//下标法赋值 0-9
for(vector<int>::size_type ix=0;ix!=fvec.size();ix++)
fvec[ix]=ix;
//输出
for(vector<int>::size_type ix=0;ix!=fvec.size();ix++)
cout<<fvec[ix];
cout<<endl;

return 0;
}

从上面可以看出,如果想要用下标法添加或者输出元素,数据的存储空间必须存在,无法动态的添加元素。

动态添加元素的方法,是用vector对象的方法:push_back()


#include<iostream>
#include<vector>
#include <string>

using namespace std;

int main()
{
//只有一个对象一个值
vector<int> ivec;
vector<string> strvec;

//现在必须动态添加元素
for(vector<int>::size_type ix=0;ix!=10;ix++)
ivec.push_back(ix);
for(vector<int>::size_type ix=0;ix!=ivec.size();ix++)
cout<<ivec[ix];
cout<<endl;
string word;
while(cin >> word)
{
strvec.push_back(word);
}
for(vector<int>::size_type ix=0;ix!=strvec.size();ix++)
cout<<strvec[ix]<<endl;
return 0;
}

注意:字符串输入结束符为 ctrl+z 回车。

使用迭代器:


#include<iostream>
#include<vector>

using namespace std;

int main()
{
vector<int> ivec(10);
//定义迭代器类型
vector<int>::iterator iter;
vector<int>::size_type ix;
//现在必须动态添加元素
for(iter=ivec.begin(),ix=0;iter!=ivec.end();iter++,ix++)
*iter=ix;
//输出
for(vector<int>::size_type ix=0;ix!=ivec.size();ix++)
cout<<ivec[ix];
cout<<endl;
return 0;
}

给vector对象添加元素的方法

时间: 2024-11-09 19:40:56

给vector对象添加元素的方法的相关文章

向vector对象中添加元素

直接初始化适用的三种情况: 初始值已知且数量较少 初始值是另一个vector对象的副本 所有元素的初始值都一样 先创建空vector,利用vector的成员函数push_back向其中添加元素: vector<int> v2;//空vector对象 for (int i = 0; i != 100; ++i) v2.push_back(i);//依次把整数值放到v2尾端 //循环结束后v2有100个元素,值从0到99 实时读入数据然后将其赋予vector对象: //从标准输入中读取单词,将其作

STL vector中的rbegin方法(5)

public member function <vector> std::vector::rbegin C++98 C++11 reverse_iterator rbegin() noexcept; const_reverse_iterator rbegin() const noexcept; Return reverse iterator to reverse beginning 返回一个反向的首元素. 例子: #include <iostream> #include <v

JavaScript原生对象属性和方法详解——Array对象 转载

length 设置或返回 数组中元素的数目. 注意:设置 length 属性可改变数组的大小.如果设置的值比其当前值小,数组将被截断,其尾部的元素将丢失.如果设置的值比它的当前值大,数组将增大,新的元素被添加到数组的尾部,它们的值为 undefined.所以length不一定代表数组的元素个数. var arr = new Array(3) arr[0] = "John" arr[1] = "Andy" arr[2] = "Wendy" cons

VBS脚本调用WIA.Vector对象绘制位图

VBS脚本可以通过调用WIA.Vector对象画图,使用该对象的Add方法可以把vb中的颜色逐个坐标画到位图中. 下面这段代码,是打印方程X(n+1)=cot(X(n)),x(1)=1迭代20次后的图像(坐标有调整,每个小格并不代表单位1) WScript.Echo "计算X(n+1)=cot(X(n)),x(1)=1 迭代20次" '沙盘 Dim V(300,300) '初始值 Dim F F = 1 '迭代前的初始点 Dim TX, TY For TX = -3 To 3     

在DLL间或者DLL与EXE之间传递vector对象或指针的问题

今天在完成一个功能模块时,遇到了一个很棘手的问题,大概是这样的: 主模块(EXE)的一个DLL中有一个函数FunA(),该函数需要查询数据库,得到记录集做处理,而数据库的操作又单独封装导出了一个DLL,由于记录集是变长的(不知道有多少记录),所以采用vector对象来传递数据.大概的过程如下: boolFunA_EXE() { vector<T> vecRet; string  strSql = "SELECT * FROM ....."; Func_Dll(strSql,

C++学习笔记(十五):vector对象在内存空间中是如何增长的

vector对象在内存空间中是如何增长的   我们都知道vector对象是动态存储的,从这一点看有点像链表,可以动态的增加或减少元素.我们也知道链表中是有指针变量,专门用于存储上一个和下一个元素的地址.正是因为这两个指针的存在,我们才能做到动态的存储数据,即不用像数组那样必须事先申请好空间.链表的缺点就是不能够快速的随机访问其中元素,必须通过指针层层查找. 但是,vector既可以实现动态存储数据,而且支持快速随机访问(用下标或者指针访问元素).对于能够用下标查找的数据类型,其存储方式必定是连续

如何选择STL容器中对象的删除方法

备注:唯一从容器中除去一个元素的方法是在那个容器上调用一个成员函数. 以下介绍删除不同类型的容器中满足某种条件的值的方法,某种条件指的是 bool badValue(int value)返回true的情况. 1.序列容器 for(SeqContainer<int>::iterator i = c.begin(); i != c.end(); /*nothing*/) { if(badValue(*i)) { //something to do i = c.erase(i); } else ++

jQuery中动态创建、添加元素的方法总结

<input type="button" value="创建元素" id="btn"> <div id="box"></div> <p id="main">这是文中一段话</p> //点击按钮,动态创建元素 //方法一:$()创建元素,后用append()方法添加.append() 还可以把其他地方元素添加进这个对象中. $('#btn').cli

JavaScript定义类与对象的一些方法

最近偶然碰到有朋友问我"hoisting"的问题.即在js里所有变量的声明都是置顶的,而赋值则是在之后发生的.可以看看这个例子: 1 var a = 'global'; 2 (function () { 3     alert(a); 4     var a = 'local'; 5 })(); 大家第一眼看到这个例子觉得输出结果是什么?'global'?还是'local'?其实都不是,输出的是undefined,不用迷惑,我的题外话就是为了讲这个东西的. 其实很简单,看一看JavaS