顺序容器的5种初始化方法

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

using namespace std;

int main(int argc, const char *argv[])
{
    //声明一个空的容器
    vector<string> svec;
    svec.push_back("HeNan");
    svec.push_back("HeBei");
    svec.push_back("ShanXi");
    svec.push_back("ShanDong");
    svec.push_back("HuBei");

    cout << "svec: " << endl;
    for(auto &item: svec){
        cout << item << endl;
    }

    //声明一个大小为5的容器
    vector<string> svec1(5);
    for(vector<string>::size_type it = 0; it != 5; ++it){
        svec1[it] = "Hello";
    }

    for(vector<string>::iterator it = svec1.begin(); it != svec1.end(); ++it){
        cout << *it << endl;
    }

    //声明一个大小为10的容器,且所有为“shenzhen”;
    vector<string> svec2(10, string("shenzhen"));

    for(vector<string>::iterator it = svec2.begin(); it != svec2.end(); ++it){
        cout << *it << endl;
    }

    //用一个容器初始化还有一个容器
    vector<string> svec3(svec);

    for(vector<string>::iterator it = svec3.begin(); it != svec3.end(); ++it){
        cout << *it << endl;
    }

    vector<string>::iterator rtn = find(svec.begin(), svec.end(), string("ShanXi"));
    if(rtn == svec.end()){
        cout << "not found!" << endl;
    }
    else{
        cout << "found!" << endl;
    }

    //用一对迭代器初始化一个容器
    vector<string> svec4(svec.begin(), rtn);

    for(auto &item: svec4){
        cout << item << endl;
    }
    return 0;
}
时间: 2024-09-30 01:52:06

顺序容器的5种初始化方法的相关文章

谈谈vector容器的三种遍历方法

说明:本文仅供学习交流,转载请标明出处,欢迎转载! vector容器是最简单的顺序容器,其使用方法类似于数组,实际上vector的底层实现就是采用动态数组.在编写程序的过程中,常常会变量容器中的元素,那么如何遍历这些元素呢?本文给出三种遍历方法. 方法一:采用下标遍历 由于vector容器就是对一个动态数组的包装,所以在vector容器的内部,重载了[]运算符,函数原型为:reference operator [] (size_type n);所以我们可以采用类似于数组的方式来访问vector容

String的几种初始化方法的区别

参考了: java中String的两种初始化方法 ? String a; String aa = ""; String aaa = "123"; String b = new String(); String bb = new String(""); String bbb = new String("123"); String c = null; ? System.out.println(aa == bb);????????/

spring在web容器启动时执行初始化方法

需求:在tomcat启动时开启一个定时任务. 想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也就可以随容器一起启动. 问题:上面的方法很好,但是由于定时任务需要去操作数据库,而项目采用了spring的依赖注入来管理对象,而servlet并不受Spring的管理.若此时在servlet中注入Spring管理的对象,则会报错:javax.naming.NameNotFoundException: Name com.test.InitS

Java数组的三种初始化方法

import org.junit.Test; //import org.testng.annotations.Parameters; public class Demo { @Test public void test() { //数组的静态初始化 int a[] = {2, 0, 1, 9, 2020}; System.out.println("----------静态初始化----------"); getArray(a); //数组的动态初始化方法一 int[] b = new

UIImage的几种初始化方法的对比

1.imageNamed:方法 imageNamed:是UIImage的一个类方法,它做的事情比我们看到的要稍微多一些.它的加载流程如下: a. 系统回去检查系统缓存中是否存在该名字的图像,如果存在则直接返回. b. 如果系统缓存中不存在该名字的图像,则会先加载到缓存中,在返回该对象. 观察上面的操作我们发现系统会缓存我们使用imageNamed:方法加载的图像时候,系统会自动帮我们缓存.这种机制适合于那种频繁用到界面贴图累的加载,但如果我们需要短时间内频繁的加载一些一次性的图像的话,最好不要使

关于UIImage类的对象两种初始化方法的区别

1.imageNamed: 1 UIImage *image = [UIImage imageNamed:@"1"]; UIImage的类方法 第一次读取图片的时候,先把这个图片放到缓存中,下次再使用这个名字的图片时,直接从缓存中读取:如果缓存中不存在这个名字的图像,则先把该图片加载到缓存中,再返回该对象.如果我们需要短时间内频繁的加载一些一次性的图像,最好不要使用这种方法. 优点:方便快捷,只有第一次使用的时候稍慢,接下来再使用就会稍微快点: 缺点:如果在当前工程中只使用一次,就会浪

0716-----C++Primer听课笔记----------STL之顺序容器、迭代器

1. 顺序容器的初始化操作 1.1 顺序容器(vector,list,deque)的五种初始化方法,以 vector 为例. #include <iostream> #include <string> #include <vector> using namespace std; int main(int argc, const char *argv[]) { //1.定义空数组 然后后面追加 vector<string> vec1; vec1.push_ba

NSMutableDictionary中的小坑与初始化方法详解

今天来讲NSMutableDictionary这个基础,是因为在今天的开发中遇到了一个小小的坑,当发现了这个问题后,着实觉得很不应该,所以在这里做一个记录,也同时同他人分享,少走我的弯路.本案例代码上传至 https://github.com/chenyufeng1991/InitNSMutableDictionary  . 今天遇到的问题是这样的,某个方法返回两种结果,NSMutableDictionary或者nil,当然我是用NSMutableDictionary类型来接收返回值.当我要对这

Spring 容器里的bean初始化回调方法研究(一)

@Author xiejun @Since 2015/10/24 感慨一下,曾经某内的讲师说spring bean的创建讲三天三夜也说不完,这种空话听的耳朵 起茧了,却还是不停地被人repeat,究其原因,o(︶︿︶)o 唉确实有的研究. **** 米字符号中是业务剥离 业务介绍: 系统a需要从另一个系统b批量获取到单号,然后存入数据库,当到使用时,a系统将单号与绑定信息回传给b系统. 在这个业务中可以把获取和存入数据库做成一个单独的服务,在后台线程中自动运行.介绍一下实现: 在容器初始化级别的