map 插入 vector

#include <string>   

#include <iostream>   

#include <algorithm>   

#include <map>   

#include <vector>   

using namespace std;   

typedef map<string, string> STRING2STRING;   

typedef std::map<string, vector<string > > STRING2VECTOR;   

int main()
{ std::map<string, string > map_test; map_test.insert(STRING2STRING::value_type("", "test1"));
map_test.insert(STRING2STRING::value_type("", "test5")); map<string, string>::const_iterator map_conitor = map_test.begin();
for(; map_conitor!= map_test.end(); map_conitor++)
{ cout<<map_conitor->first<<" "<<map_conitor->second<<endl;
} map<int, vector<string> > m_map; vector<string> m_vec;
m_vec.resize(); m_vec[] = "aaaaa";
m_vec[] = "bbbbb";
// m_vec.clear();
// cout<<m_vec[0]<<endl; m_map[] = m_vec;
if(m_map[].empty()) { cout<<"not push_back can not assignment"<<endl;} cout<<m_map[][]<<endl; // push_back 方式
vector<string> m_vecPush;
m_vecPush = m_map[];
cout<<"assignment m_vecPush:"<<m_vecPush[] <<endl; map<int, vector<string> > m_mapPush;
m_vecPush.resize(); m_vecPush.push_back("aaaaa");
m_vecPush.push_back("bbbbb"); // m_mapPush[0] = m_vecPush; 与 m_mapPush.insert 等价
m_mapPush.insert(pair<int,vector<string> >(,m_vecPush)); if(m_mapPush[].empty()) { cout<<"push_back can not assignment"<<endl;}
cout<<m_mapPush[][]<<endl; // m_mapPush[dev_id].empty() 与 m_mapPush.find(dev_id) == m_mapPush.end() 类似
if(m_mapPush[].empty()) {
cout<<"m_mapPush empty way not exits"<<endl;
} if(m_mapPush.find() == m_mapPush.end()) {
cout<<"m_mapPush find way not exits"<<endl;
} /////////////////////////// vector 清空元素 ///////////////////////////////
// 清空元素,不回收空间
m_vecPush.clear();
cout<<"clear vector size:"<<m_vecPush.capacity()<<endl;
// 清空元素并释放空间
m_vecPush.clear();
vector<string>().swap(m_vecPush);
cout<<"swap vector size:"<<m_vecPush.capacity()<<endl; }

之前在开发板上使用

m_vec[0] = "aaaaa"; 这种方式,然后用 m_map[0] = m_vec; 发现m_vec赋值不成功。要用m_vec.push_back("aaaa")这种方式才能赋值给map。 但在台式linux上不存在这种情况。

C++ vector 使用笔记的更多相关文章

  1. <<Vector Calculus>>笔记

    现在流行用Exterior Caculus, 所以个人觉得Matthews这本书有点过时了. 想学Vector Calculus的话,推荐<Vector Calculus, Linear Alg ...

  2. C++ std::vector 总结笔记

    Initialization #include<iostream> #include<vector> using namespace std; int main() { vec ...

  3. C++笔记(1)

    C++笔记1文件与流笔记 参考博客: https://blog.csdn.net/kingstar158/article/details/6859379       关闭文件中: 当文件读写操作完成之 ...

  4. C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件

    阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: /*读取txt文件到二维数组*/ #include <iostream> #include <fstream> ...

  5. Essential C++ 学习笔记02--Array/Vector 与指针

    Essential C++ 1.5-1.6节,3.1节笔记 Array/Vector/指针,难度偏大, 但若学习初期不熟悉基本用法,则难以写出有效代码. 1. 基本概念 Array 是一段连续内存,数 ...

  6. STL源码剖析读书笔记之vector

    STL源码剖析读书笔记之vector 1.vector概述 vector是一种序列式容器,我的理解是vector就像数组.但是数组有一个很大的问题就是当我们分配 一个一定大小的数组的时候,起初也许我们 ...

  7. 小猪猪C++笔记基础篇(四)数组、指针、vector、迭代器

    小猪猪C++笔记基础篇(四) 关键词:数组,Vector. 一.数组与指针 数组相信大家学过C语言或者其他的语言都不陌生,简单的就是同一个变量类型的一组数据.例如:int a[10],意思就是从a开始 ...

  8. Effective STL 学习笔记: 多用 vector & string

    Effective STL 学习笔记: 多用 vector & string 如果可能的话, 尽量避免自己去写动态分配的数组,转而使用 vector 和 string . 原书作者唯一想到的一 ...

  9. STL之vector常用函数笔记

    STL之vector常用函数笔记 学会一些常用的vector就足够去刷acm的题了 ps:for(auto x:b) cout<<x<<" ";是基于范围的 ...

随机推荐

  1. verilog 数据格式

    基数格式(通常为无符号数)[size]'base value size常量的位数 base数制o:8 b:2 d:10 h:16 https://wenku.baidu.com/view/f63daa ...

  2. appium学习记录 elements默认获取第一个元素

    封装 初始配置时候 要当做参数传入 element 发送的是一个元组 2  下标定位 当用elements进行定位时候 同时又有很多元素时候 默认获取第一个,但我们的元素是在后面时候 例如第四个 el ...

  3. 洛谷P2698 [USACO12MAR]花盆Flowerpot

    P2698 [USACO12MAR]花盆Flowerpot 题目描述 Farmer John has been having trouble making his plants grow, and n ...

  4. NOIP2018滚粗记

    NOIP2018滚粗记 day 0 上午,说是可以休息,然后睡到快9点起来吃个早饭去了机房.刷了几个板子就十二点了 下午大概就是看别人总结,颓知乎,完全没心思写代码. 晚上不要求,然后在寝室颓了一下, ...

  5. BZOJ5251 八省联考2018劈配(网络流)

    劈配,匹配,网络流.那么考虑怎么跑网络流. 先看第一问.首先套路的建出超源超汇.不用想也知道导师向汇连容量为战队人数上限的边.特别地,给出局也建一个点,向汇连容量inf的边(似乎没有必要).对于一个新 ...

  6. BZOJ4785 ZJOI2017树状数组(概率+二维线段树)

    可以发现这个写挂的树状数组求的是后缀和.find(r)-find(l-1)在模2意义下实际上查询的是l-1~r-1的和,而本来要查询的是l~r的和.也就是说,若结果正确,则a[l-1]=a[r](mo ...

  7. Sql Server 之 Merge

    转载:http://blog.csdn.net/zmoneyz/article/details/38404111 现在我们来创建了两个表Person和UserLogin Person表如下: User ...

  8. android第二课:运行你的应用

    如果你按照前面课程创建了 Android 项目,它包含了可以立即运行的 "Hello World"源代码文件. 由两该条件来决定如何运行你的应用:你是否拥有运行着 Android ...

  9. luogu2827 [NOIp2016]蚯蚓 (模拟)

    可以直观地想到用优先队列来做,但数据范围是O(n)的 然后我们发现,因为我们每次挑出来的蚯蚓是单调的,所以把每个切成两段后,那两段也是对应单调的 也就是说,算上最一开始的蚯蚓,我们一共维护三个队列,三 ...

  10. 洛谷P4364 IIIDX

    题意:给定n个数和k,把n个数排成序列,满足ai >= ai/k,并使之字典序最大. 解:毒瘤线段树贪心... 以i/k为i的父亲构树. 当这n个数不同的时候,直接后序遍历贪心即可. 正解神奇的 ...