c++ primer 容器 学习记录

容器用法规范

  • vector 可变大小数组,支持快速随机访问,尾部之外插入删除集在机器上实用性不高
  • deque 双向队列,支持快速随机访问,在头尾插入和删除集效果很好
  • list 双向链表,只支持双向顺序访问,在任何位置插入和删除集效果都很好
  • forward_list 单向链表,只支持单向顺序访问,在任何位置插入和删除集效果都很好
  • array 固定大小数组,只适用于快速随机访问,没有对应的插入和删除集
  • tring 特征同vector,但专门用于保存字符
//一般用vector
//在容器中间施行插入集,则应该在输入阶段使用list,然后将内容拷贝给vector

//读取未知数量单词,总是将新单词插入末尾,删除操作在头部进行:快速随机访问、尾部插入好、头部删除好 -》 deque
//读取固定数量单词,将他们按字典顺序插入到容器中:快速随机访问、尾部插入好 -》string、vector<string>
//从文件读取未知数量的整数,将这些数排序:快速随机访问、尾部插入好\数量未知 -》vector<int>

//要求随机访问:vector,deque
//要求在容器的中间施行插入或删除集:list,forward_list
//不要求在容器的中间施行插入或删除集,要求在容器的头尾施行插入或删除集:deque
//要求读取输入流时才需要在容器中间插入元素,随后需要随机访问:由vector到sort,由list到vector

容器初始化

  1. 拷贝初始化
list<string> authors = {"Milton","Shankespeare","Austen"};
vector<const char*> articles = {"a","an","the"};
list<string> list2(authors);//正确
deque<string> author_list(authors);//错误
vector<string> words(articles);//错误
forward_list<string> words(articles.begin(),articles.end());
/*当将一个容器初始化为另一个容器的拷贝时,两个容器的容器类型和元素类型都必须相同*/
list<string> authors = {"Milton","Shankespeare","Austen"};
deque<string> auth_list(authors.begin(),authors.end());//正确,用容器的迭代器作为容器构造函数参数
  1. 列表初始化
list<string> authors = {"Milton","Shankespeare","Austen"};
  1. swap
vector<string> vec(10);
vector<string> vec2(24);
swap(vec2,vec);
  1. 容器操作集
//push_back(),除了array和forward_list之外,每个顺序容器都支持push_back()
//push_front(),list、forward_list、deque支持push_front()
//insert(iterator,object),往iterator指向的容器位置添加对象
//pop_front()和pop_back()成员函数集分别用于删除首元素和尾元素
//c.erase(p) 
//c.erase(b,e)
//c.clear()
### 关于ArcGIS License Server无法启动的解决方案 当遇到ArcGIS License Server无法启动的情况,可以从以下几个方面排查并解决问题: #### 1. **检查网络配置** 确保License Server所在的计算机能够被其他客户端正常访问。如果是在局域网环境中部署了ArcGIS Server Local,则需要确认该环境下的网络设置是否允许远程连接AO组件[^1]。 #### 2. **验证服务状态** 检查ArcGIS Server Object Manager (SOM) 的运行情况。通常情况下,在Host SOM机器上需将此服务更改为由本地系统账户登录,并重启相关服务来恢复其正常工作流程[^2]。 #### 3. **审查日志文件** 查看ArcGIS License Manager的日志记录,寻找任何可能指示错误原因的信息。这些日志可以帮助识别具体是什么阻止了许可服务器的成功初始化。 #### 4. **权限问题** 确认用于启动ArcGIS License Server的服务账号具有足够的权限执行所需操作。这包括但不限于读取/写入特定目录的权利以及与其他必要进程通信的能力。 #### 5. **软件版本兼容性** 保证所使用的ArcGIS产品及其依赖项之间存在良好的版本匹配度。不一致可能会导致意外行为完全失败激活license server的功能。 #### 示例代码片段:修改服务登录身份 以下是更改Windows服务登录凭据的一个简单PowerShell脚本例子: ```powershell $serviceName = "ArcGISServerObjectManager" $newUsername = ".\LocalSystemUser" # 替换为实际用户名 $newPassword = ConvertTo-SecureString "" -AsPlainText -Force Set-Service -Name $serviceName -StartupType Automatic New-ServiceCredential -ServiceName $serviceName -Account $newUsername -Password $newPassword Restart-Service -Name $serviceName ``` 上述脚本仅作为示范用途,请依据实际情况调整参数值后再实施。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值