青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我輩豈是蓬蒿人!

C++ && keyWordSpotting

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  11 Posts :: 0 Stories :: 4 Comments :: 0 Trackbacks

常用鏈接

留言簿(9)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 7323
  • 排名 - 1369

最新評論

閱讀排行榜

評論排行榜

(一)

One of the basic classes implemented by the Standard Template Library is the vector class. A vector is, essentially, a resizeable array; the vector class allows random access via the [] operator, but adding an element anywhere but to the end of a vector causes some overhead as all of the elements are shuffled around to fit them correctly into memory. Fortunately, the memory requirements are equivalent to those of a normal array. The header file for the STL vector library is vector. (Note that when using C++, header files drop the .h; for C header files - e.g. stdlib.h - you should still include the .h.) Moreover, the vector class is part of the std namespace, so you must either prefix all references to the vector template with std:: or include "using namespace std;" at the top of your program.

Vectors are more powerful than arrays because the number of functions that are available for accessing and modifying vectors. Unfortunately, the [] operator still does not provide bounds checking. There is an alternative way of accessing the vector, using the function at, which does provide bounds checking at an additional cost. Let's take a look at several functions provided by the vector class:

1?unsigned?int?size();?//?Returns?the?number?of?elements?in?a?vector
2?push_back(type?element);?//?Adds?an?element?to?the?end?of?a?vector
3?bool?empty();?//?Returns?true?if?the?vector?is?empty
4?void?clear();?//?Erases?all?elements?of?the?vector
5?type?at(int?n);?//Returns?the?element?at?index?n,?with?bounds?checking

also, there are several basic operators defined for the vector class:

=           Assignment replaces a vector's contents with the contents of another
==          An element by element comparison of two vectors
[]          Random access to an element of a vector (usage is similar to that
            of the operator with arrays.) Keep in mind that it does not provide
            bounds checking.

Let's take a look at an example program using the vector class:

				
?1?#include?<iostream>
?2?#include?<vector>
?3?using?namespace?std;
?4?
?5?int?main()
?6?{
?7?????vector?<int>?example;?????????//Vector?to?store?integers
?8?????example.push_back(3);?????????//Add?3? onto?the?vector
?9?????example.push_back(10);????????//Add?10?to?the?end
10?????example.push_back(33);????????//Add?33?to?the?end

11?????for(int?x=0;?x<example.size();?x++)?
12?????{
13?????????cout<<example[x]<<"?";????//Should?output:?3?10?33
14?????}

15?????if(!example.empty())??????????//Checks?if?empty
16?????????example.clear();??????????//Clears?vector
17?????vector?<int>?another_vector;??//Creates?another?vector?to?store?integers
18?????another_vector.push_back(10);?//Adds?to?end?of?vector
19?????example.push_back(10);????????//Same
20?????if(example==another_vector)???//To?show?testing?equality
21?????{
22?????????example.push_back(20);?
23?????}
24?????for(int?y=0;?y<example.size();?y++)
25?????{
26?????????cout<<example[y]<<"?";????//Should?output?10?20
27?????}
28?????return?0;
29?}
Summary of Vector Benefits

Vectors are somewhat easier to use than regular arrays. At the very least, they get around having to be resized constantly using new and delete. Furthermore, their immense flexibility - support for any datatype and support for automatic resizing when adding elements - and the other helpful included functions give them clear advantages to arrays.

Another argument for using vectors are that they help avoid memory leaks--you don't have to remember to free vectors, or worry about how to handle freeing a vector in the case of an exception. This simplifies program flow and helps you write tighter code. Finally, if you use the at() function to access the vector, you get bounds checking at the cost of a slight performance penalty.

(二)

?C++ vector is a container template available with Standard Template Library pack. This C++ vector can be used to store similar typed objects sequentially, which can be accessed at a later point of time. As this is a template, all types of data including user defined data types like struct and class can be stored in this container.

This article explains briefly about how to insert, delete, access the data with respect to the C++ vector. The type stl::string is used for the purposes of explaining the sample code. Using stl::string is only for sample purposes. Any other type can be used with the C++ vector.

The values can be added to the c++ vector at the end of the sequence. The function push_back should be used for this purpose. The <vector> header file should be included in all the header files in order to access the C++ vector and its functions.

?1?#include?<vector>
?2?#include?<string>
?3?#include?<iostream.h>
?4?
?5?void?main()
?6?{
?7?????//Declaration?for?the?string?data
?8?????std::string?strData?=?"One";
?9?????//Declaration?for?C++?vector
10?????std::?vector?<std::string>?str_Vector;
11?????str_Vector.push_back(strData);
12?????strData?=?"Two";
13?????str_Vector.push_back(strData);
14?????strData?=?"Three";
15?????str_Vector.push_back(strData);
16?????strData?=?"Four";
17?????str_Vector.push_back(strData);
18?}

The above code adds 4 strings of std::string type to the str_Vector. This uses std:: vector.push_back function. This function takes 1 parameter of the designated type and adds it to the end of the c++ vector.

Accessing Elements of C++ Vector:

?? The elements after being added can be accessed in two ways. One way is our legacy way of accessing the data with vector.at(position_in_integer) function. The position of the data element is passed as the single parameter to access the data.

Using our normal logic for accessing elements stored in C++ Vector:

If we want to access all the data, we can use a for loop and display them as follows.

1?for(int?i=0;i?<?str_Vector.size();?i++)
2?{
3?????std::string?strd?=?str_Vector.at(i);
4?????cout<<strd.c_str()<<endl;
5?}

The std:: vector .size() function returns the number of elements stored in the vector.

Using C++ vector iterator provided by STL:

The next way is to use the iterator object provided by the STL. These iterators are general purpose pointers allowing c++ programmers to forget the intricacies of object types and access the data of any type.

1?std::vector<std::string>::iterator?itVectorData;
2?for(itVectorData?=?str_Vector.begin();??itVectorData?!=?str_Vector.end();?itVectorData++)
3?{
4?????std::string?strD?=?*(itVectorData);
5?}

Removing elements from C++ vector:

Removing elements one by one from specified positions in c++ vector is achieved with the erase function.

The following code demonstrates how to use the erase function to remove an element from position 2 in the str_Vector from our sample.

1 str_Vector.erase(str_Vector.begin() + 1 ,str_Vector.begin() + 2 );

?The following sample demonstrates how to use the erase() function for removing elements 2,3 in the str_Vector used in the above sample.?

1 str_Vector.erase(str_Vector.begin() + 1 ,str_Vector.begin() + 3 );

If one wants to remove all the elements at once from the c++ vector, the vector.clear() function can be used.

posted on 2006-08-13 19:36 keyws 閱讀(817) 評論(0)  編輯 收藏 引用 所屬分類: STL

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久久久蜜桃| 在线观看一区欧美| 亚洲国产成人久久综合| 136国产福利精品导航网址应用| 亚洲国产日韩在线| 欧美va日韩va| 欧美在线一二三四区| 免费观看成人| 久久久久国产精品一区三寸 | 欧美大片一区二区三区| 久久精品一区二区三区中文字幕| 久久久久国产精品午夜一区| 亚洲美女免费精品视频在线观看| 国产视频一区三区| 欧美午夜电影网| 欧美伊人精品成人久久综合97| 在线视频欧美日韩| 午夜久久久久| 亚洲精品午夜| 麻豆精品91| 欧美激情视频网站| 久久婷婷久久一区二区三区| 妖精视频成人观看www| 猛干欧美女孩| 亚洲国产精品ⅴa在线观看 | 亚洲一区不卡| 欧美不卡高清| 新67194成人永久网站| 亚洲麻豆视频| 亚洲精品资源| 欧美日本一区二区视频在线观看| 91久久精品美女| 日韩视频在线一区二区三区| 久久人人爽国产| 国产精品观看| 国产一区二区高清| 亚洲黄色大片| 久久精品成人| 久久精品久久综合| 国产精品青草久久| 亚洲免费在线| 欧美在线高清| 国产精品区免费视频| 亚洲国产精品久久久久| 国产亚洲精品自拍| 午夜免费日韩视频| 亚洲一区二区综合| 国产欧美日韩91| 老司机一区二区| 亚洲大胆女人| 亚洲视频www| 性18欧美另类| 蜜月aⅴ免费一区二区三区| 好吊妞**欧美| 欧美乱大交xxxxx| 午夜精品区一区二区三| 欧美高清不卡在线| 欧美日韩在线视频一区| 日韩一区二区精品视频| 午夜精品理论片| 国产亚洲欧美aaaa| 亚洲一本大道在线| 久久久久国产一区二区三区| 日韩亚洲视频在线| 欧美日韩国产区一| 亚洲视频欧洲视频| 欧美激情综合| 在线观看一区| 国产精品成人一区二区网站软件 | 欧美精品久久久久久久久久| 国产伦精品一区二区三区视频黑人 | 亚洲午夜激情网站| 亚洲欧美变态国产另类| 亚洲第一页自拍| 欧美www在线| 亚洲影院在线| 欧美freesex8一10精品| 日韩视频精品在线观看| 欧美午夜大胆人体| 久久经典综合| 日韩一区二区福利| 麻豆91精品| 亚洲欧美日韩视频一区| 久久久噜久噜久久综合| 亚洲激情网站免费观看| 小嫩嫩精品导航| 亚洲精品久久嫩草网站秘色 | 欧美一区二区三区免费大片| 国语自产精品视频在线看抢先版结局| 久久综合给合| 性欧美长视频| 亚洲自拍偷拍色片视频| 亚洲美女视频在线免费观看| 亚洲福利视频网站| 久久婷婷成人综合色| 欧美 日韩 国产在线| 欧美一区激情视频在线观看| 亚洲精品三级| 夜夜爽www精品| 亚洲国产mv| 美女精品在线观看| 久久久中精品2020中文| 老司机凹凸av亚洲导航| 噜噜噜在线观看免费视频日韩| 久久精品一二三| 欧美在线视频二区| 美女尤物久久精品| 最新中文字幕亚洲| avtt综合网| 欧美一级一区| 久久视频精品在线| 欧美国产日韩一区| 国产精品成人一区二区艾草| 国产精品丝袜xxxxxxx| 国精品一区二区三区| 亚洲人成网站在线播| 午夜激情久久久| 免费观看在线综合| 久久成人久久爱| 亚洲国产精品成人精品| 99精品国产高清一区二区 | 亚洲韩国日本中文字幕| 日韩视频免费观看高清完整版| 亚洲狠狠婷婷| 一区二区三区精品| 久久人人爽人人| 亚洲欧美日韩系列| 欧美片在线播放| 亚洲大片av| 亚洲欧美日韩高清| 亚洲精品美女91| 欧美激情一区二区三区全黄| 中日韩高清电影网| 亚洲一二三区在线| 欧美大片一区二区| 亚洲小说欧美另类婷婷| 亚洲一区国产精品| 亚洲毛片av在线| 欧美韩日一区二区| 亚洲国产精品成人综合色在线婷婷| 性久久久久久久| 在线视频一区二区| 国产精品素人视频| 国产啪精品视频| 久久免费精品日本久久中文字幕| 亚洲欧美网站| 欧美色区777第一页| 亚洲男女自偷自拍| 亚洲欧美中文在线视频| 国产日韩av高清| 欧美国产日韩精品免费观看| 亚洲少妇自拍| 亚洲高清三级视频| 亚洲精选一区二区| 国产日韩欧美精品一区| 免费日韩精品中文字幕视频在线| 久久综合久色欧美综合狠狠| 亚洲日本欧美| 亚洲欧美日韩网| 亚洲精品久久7777| 欧美一区二区三区视频免费播放| 一区二区视频在线观看| 亚洲乱码国产乱码精品精98午夜| 国产精品推荐精品| 亚洲国产精品va在线看黑人动漫 | 欧美成人网在线| 国产精品一区二区久久国产| 美女诱惑黄网站一区| 国产精品久久久久毛片大屁完整版 | 亚洲第一天堂av| 99精品热视频只有精品10| 国产美女精品| 亚洲图片欧美日产| 亚洲一区黄色| 好吊妞**欧美| 亚洲淫性视频| 亚洲女同在线| 欧美午夜电影完整版| 91久久在线观看| 亚洲伦理自拍| 欧美精品免费视频| 欧美成人资源| 99精品视频网| 欧美图区在线视频| 亚洲美女诱惑| 免费亚洲电影| 亚洲天堂av在线免费| 国产一区二区三区高清| 欧美成人国产va精品日本一级| 99re66热这里只有精品3直播| 久久爱www.| 一区二区欧美在线观看| 国产一区二区三区久久 | 日韩一区二区免费高清| 国产精品毛片在线| 亚洲国产视频一区| 欧美精品不卡| 久久久女女女女999久久| 亚洲午夜视频在线观看| 91久久线看在观草草青青|