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

我輩豈是蓬蒿人!

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>
            美女诱惑黄网站一区| 亚洲大胆女人| 一本久道久久综合狠狠爱| 国产精品捆绑调教| 99伊人成综合| 亚洲欧洲日本一区二区三区| 久久中文久久字幕| 麻豆免费精品视频| 亚洲激情国产| 免费在线看成人av| 欧美成人午夜激情| 夜夜爽av福利精品导航| 欧美色视频一区| 亚洲无线观看| 久久久久久97三级| 狠久久av成人天堂| 欧美紧缚bdsm在线视频| 亚洲视频视频在线| 欧美黄色成人网| 久久av老司机精品网站导航| 激情综合久久| 欧美日韩专区在线| 欧美在线一二三四区| 亚洲精品孕妇| 欧美成人免费视频| 亚洲免费电影在线| 国产精品国产成人国产三级| 久久精品99无色码中文字幕| 欧美激情小视频| 久久精品亚洲乱码伦伦中文| 亚洲午夜精品一区二区| 亚洲国产第一页| 国产亚洲精品激情久久| 欧美日韩免费观看一区三区| 久久成人精品无人区| 亚洲区一区二| 麻豆成人在线观看| 久久久久亚洲综合| 欧美日本在线一区| 亚洲级视频在线观看免费1级| 米奇777在线欧美播放| 欧美诱惑福利视频| 亚洲性视频网址| 亚洲国产乱码最新视频| 久久精品综合一区| 欧美一区二区三区另类| 亚洲国产女人aaa毛片在线| 国产精品入口夜色视频大尺度| 欧美大片免费观看在线观看网站推荐| 欧美在线网址| 久久国产手机看片| 一区二区三区久久精品| 欧美在线播放| 亚洲午夜视频在线观看| 亚洲精品乱码久久久久久久久| 在线成人激情黄色| 伊人久久亚洲热| 在线不卡a资源高清| 国精品一区二区三区| 国产日韩亚洲| 国产一区二区三区av电影| 国产欧美日韩一级| 黑人巨大精品欧美一区二区| 亚洲动漫精品| 夜夜嗨av一区二区三区| 亚洲视频在线观看视频| 亚洲欧美视频在线观看视频| 欧美在线综合| 免费短视频成人日韩| 欧美国产激情| 亚洲美女尤物影院| 亚洲欧美日本视频在线观看| 欧美一区二区三区播放老司机| 久久国产精品亚洲va麻豆| 久久久久久穴| 欧美喷水视频| 国产欧美一区二区三区久久人妖| 久久一综合视频| 久久永久免费| 国产精品美女主播| 国产精品欧美久久久久无广告| 欧美理论视频| 国产欧美91| 亚洲福利视频在线| 亚洲天天影视| 久久人人97超碰国产公开结果 | avtt综合网| 亚洲欧美国产精品专区久久| 亚洲欧美日韩国产成人| 亚洲天堂av在线免费观看| 欧美视频网址| 国产精品你懂的| 伊人天天综合| 欧美电影免费观看网站 | 亚洲性图久久| 欧美18av| 国产一区二区三区在线观看免费视频| 亚洲美女啪啪| 久久精品一区蜜桃臀影院| 亚洲精品久久久一区二区三区| 亚洲综合日韩在线| 欧美伦理在线观看| 亚洲福利在线观看| 午夜久久tv| 亚洲乱码国产乱码精品精天堂| 久久精品亚洲一区| 国产精品大片免费观看| 亚洲激情综合| 麻豆成人av| 欧美一级在线播放| 欧美午夜片欧美片在线观看| 亚洲激情在线激情| 鲁大师影院一区二区三区| 中文在线一区| 欧美视频免费在线| 一本色道久久综合狠狠躁篇的优点| 久久免费视频观看| 欧美一区二区三区四区在线观看| 国产精品激情| 亚洲资源av| 一级日韩一区在线观看| 欧美日韩国产小视频| 日韩亚洲欧美一区二区三区| 欧美国产日韩一区二区在线观看 | 亚洲一区三区视频在线观看| 日韩一区二区福利| 91久久精品美女| 欧美一区二区高清| 999亚洲国产精| 欧美日韩国产色视频| 亚洲黄色影片| 亚洲电影下载| 欧美v国产在线一区二区三区| 国产又爽又黄的激情精品视频| 久久精品国产欧美激情| 久久人人97超碰国产公开结果 | 亚洲美女福利视频网站| 欧美一进一出视频| 国产精品久久久久天堂| 亚洲免费综合| 宅男噜噜噜66一区二区66| 欧美午夜精品久久久| 亚洲欧美日韩国产综合| 制服丝袜亚洲播放| 欧美激情精品久久久久久黑人| 裸体丰满少妇做受久久99精品| 国产一区二区三区四区三区四| 欧美一区二区三区在线看| 亚洲欧美日韩视频二区| 精品不卡在线| 亚洲国产精品成人精品 | 国产精品久久久久影院色老大 | 久久国产精品网站| 亚洲国产欧美国产综合一区| 亚洲精品一级| 国产日韩三区| 亚洲韩国日本中文字幕| 国产精品美女一区二区在线观看| 久久婷婷人人澡人人喊人人爽 | 毛片一区二区| 亚洲午夜久久久久久尤物 | 亚洲欧美在线免费观看| 久久精选视频| 一本色道久久综合亚洲精品小说| 亚洲在线观看视频| 在线播放亚洲| 亚洲视屏在线播放| 在线看成人片| 中文在线资源观看视频网站免费不卡| 国产视频欧美视频| 亚洲欧洲日韩在线| 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品综合色区在线观看| 欧美成人免费播放| 国产精品都在这里| 亚洲电影在线播放| 国产精品推荐精品| 亚洲欧洲日夜超级视频| 亚洲国产综合视频在线观看| 日韩一级欧洲| 在线精品国产成人综合| 中文在线资源观看网站视频免费不卡| 樱桃成人精品视频在线播放| 亚洲一区二区视频| 日韩午夜一区| 蜜桃伊人久久| 麻豆精品传媒视频| 国产精品欧美精品| 99日韩精品| aa级大片欧美三级| 欧美激情bt| 欧美国产视频在线| 在线播放国产一区中文字幕剧情欧美| 亚洲欧美日韩国产精品| 亚洲天堂av图片| 欧美电影在线观看| 亚洲激情视频网| 亚洲二区视频| 久久裸体视频| 欧美成人免费全部|